Apache的介绍
PHP简单介绍
PHP升级的注意事项
LAMP架构
LAMP底层原理
浏览器网页形成过程
- 浏览器向服务器发送http请求,服务器(Apache)接收请求,由于php作为apache的组件也会一并启动,php和apache具有相同的生命周期。
- Apache会讲一些静态资源保存,然后调用php处理模块进行php脚本的处理。
- 脚本处理完成后,Apache将处理完的信息通过http response的方式发送给浏览器,浏览器解析,渲染等一些列操作后呈现整个网页
Apache工作模式
Apache三种工作模式
Apache安装
#需要安装的包
yum install httpd -y
yum install httpd-devel -y
yum install elinks -y
示例:
[root@localhost ~]# ls /mnt/Packages/httpd*
/mnt/Packages/httpd-2.4.6-95.el7.centos.x86_64.rpm #apache的主程序包
/mnt/Packages/httpd-devel-2.4.6-95.el7.centos.x86_64.rpm #apache的开发程序包
/mnt/Packages/httpd-manual-2.4.6-95.el7.centos.noarch.rpm #apache的手册文档
/mnt/Packages/httpd-tools-2.4.6-95.el7.centos.x86_64.rpm #apache的工具包
[root@localhost ~]#
[root@localhost ~]# elinks
搭建个人网站
搭建个人网站需要注意的事项
-
安装机制:端口放行
-
每秒钟:峰值➗(24✖3600)
-
经验值:在算出每秒钟的基础上再✖10;意思就是在每秒钟的数值的基础上估算的上下浮动
PS:带宽不足时可以向运营商申请带宽,申请带宽是按照原本的带宽值✖8(经验值)
Apache配置文件
- Apache配置文件中的字段解析:
1. ServerRoot :表示apache的根目录
2. Listen:监听端口
3. Include conf.modules.d/*.conf:在这个路径下指定.conf文件,就会优先检查该目录,避免在修改源文件出现错误
4. Options Indexes FollowSymLinks:目录浏览
5. User apache:用户为apache
6. Group apache:组为apache
7. ServerAdmin:apache的管理员,当网站出现情况时,apache会根据这个字段指定的管理员发送消息或邮件
8. AddDefaultCharset UTF-8:apache支持的语言,默认为UTF-8
9. LoadModule:加载动态模块 - 页面显示配置文件
1. Apache显示的内容默认存放在/var/www/html目录下
2. 如果存在虚拟目录,则先查找虚拟目录再查找默认目录
[root@sunlit4 ~]# ll /etc/httpd/conf/httpd.conf #apache配置文件路径
[root@sunlit4 ~]# ll /var/www/html #页面显示内容默认目录
Apache状态码
实验环境
安装LAMP
yum install httpd mariadb mariadb-server php php-mysql -y #安装LAMP所需的软件包
#在httpd配置文件目录下创建index.php文件
[root@sunlit4 ~]# cd /var/www/html/
[root@sunlit4 html]# cat index.php
#使用以下的php函数探测mysql的运行情况
<?php
phpinfo()
?>
[root@sunlit4 html]#
[root@sunlit4 html]# systemctl restart httpd
通过php测试
- 出现以下界面表示当前已成功搭建LAMP
PS:如果没有显示php的界面,但出现空白页,则按照以下步骤检查:
1. 查看刚刚在apache配置文件目录下创建的文件内容是否有错误
2. apache 是否能解析php
3. 服务是否有重启,LAMP中的服务是否全部正常启动
4. 如以上步骤检查后仍然无法显示php的界面,则查看权限,看是否在使用的用户权限不足
解析php出错的处理手段
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php.php #表示遇到php就立即解析
<IfModule dir_module>
DirectoryIndex index.php index.html #表示先解析php,如果没有php再解析html
</IfModule>
实验
实验1 web服务器配置
需求:
搭建一台内部的web服务器,采用的内部IP地址和80端口,访问格式IP+端口,首页采用index.html文件。管理员E-mail地址为 sunlit4@sunlit.cn ,网页的编码类型采用UTF-8,所有网站资源都存放在/var/www/html目录下,并将Apache的配置文件根目录设置为/etc/httpd目录。
修改配置文件
设置Apache的根目录为/etc/httpd(默认)
设置httpd 监听端口80
设置管理员E-mail地址为 sunlit@sunlit.com
#配置文件中需要修改的字段
ServerAdmin sunlit@sunlit.com #修改管理员的E-mail地址
PS:想不显示Apache默认界面可在/etc/httpd/conf.d/welcome.conf文件中的LocationMatch注释掉
在注释掉后/var/www/html目录下的文件可在Apache页面上分享
#<LocationMatch "^/+$">
# Options -Indexes
# ErrorDocument 403 /.noindex.html
#</LocationMatch>
实验2 使用别名引用网站以外的路径
[root@sunlit4 html]# mkdir /usr/local/data
[root@sunlit4 html]# echo "this is data test" >> /usr/local/data/index.html
[root@sunlit4 html]# pwd
/var/www/html
[root@sunlit4 html]#
Alias /data/ "/usr/local/data/" #指定访问目录路径
<Directory "/usr/local/data/">
Options Indexes FollowSymLinks #不访问索引
AllowOverride None # 显示空白页
Require all granted # 接收所有的请求
</Directory>
最终访问效果
![[Pasted image 20221126194322.png]]
实验3 通过用户认证方式访问
创建被访问的文件
[root@sunlit5 ~]# mkdir /usr/local/data
[root@sunlit5 data]# echo "this is data test" >> index.html
修改配置文件
- 在/etc/httpd/conf/httpd.conf下添加以下字段
- 字段解析
1. authtype:设定认证类型
2. authname:自定义认证的提示
3. authuserfile:指定密码文件路径
4. require user:允许哪些用户访问
5. require valid–user:表示在authuserfile指定的文件中的用户都可以访问
<Directory "/usr/local/data/">
Options Indexes FollowSymLinks
authtype basic #认证类型
authname "my web site" #认证提示
authuserfile /etc/httpd/conf/passwd.secret #密码文件
require valid-user #允许的请求用户
</Directory>
[root@sunlit5 ~]# grep "/usr/local" /etc/httpd/conf/httpd.conf
Alias /data/ "/usr/local/data/"
<Directory "/usr/local/data/">
[root@sunlit5 ~]#
创建认证用户密码
[root@sunlit5 ~]# htpasswd -cm /etc/httpd/conf/passwd.secret sunlit
New password:
Re-type new password:
Adding password for user sunlit
[root@sunlit5 ~]# cat /etc/httpd/conf/passwd.secret
sunlit:$apr1$jCCa1cRa$zQu1Vg5nKlOX.Zu8umexn0
[root@sunlit5 ~]# htpasswd -m /etc/httpd/conf/passwd.secret sunlit2
#第二次创建用户不用加"-c"参数
New password:
Re-type new password:
Adding password for user sunlit2
[root@sunlit5 ~]# cat /etc/httpd/conf/passwd.secret #密码由md5加密
sunlit:$apr1$jCCa1cRa$zQu1Vg5nKlOX.Zu8umexn0
sunlit2:$apr1$31Git5JX$Hx3NUD8CKnonBo8u9iCPe.
[root@sunlit5 ~]#
PS:配置完成后需要对apache进行重启
最终结果
apache虚拟主机
基于IP的访问方式
[root@sunlit5 ~]# ifconfig ens32:0 192.168.21.6 #设置临时IP
[root@sunlit5 ~]# ifconfig | grep inet | awk 'NR==1{print $2}''NR==3{print $2}'
192.168.21.5
192.168.21.6
[root@sunlit5 ~]#
[root@sunlit5 html]# tail -9 /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.21.5:80>
DocumentRoot /var/www/html/sunlit5
</VirtualHost>
<VirtualHost 192.168.21.6:80>
DocumentRoot /var/www/html/sunlit6
</VirtualHost>
[root@sunlit5 html]#
[root@sunlit5 sunlit5]# echo '192.168.21.5我是sunlit5' > /var/www/html/sunlit5/index.html
[root@sunlit5 sunlit5]# echo '192.168.21.5我是sunlit6' > /var/www/html/sunlit6/index.html
访问的效果
基于域名的访问方式
[root@sunlit5 ~]# tail /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/sunlit5
ServerName www.sunlit.net
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/sunlit6
ServerName www.sunlit.com
</VirtualHost>
[root@sunlit5 ~]#
[root@sunlit5 ~]# tail -2 /etc/hosts
192.168.21.5 www.sunlit.net
192.168.21.5 www.sunlit.com
[root@sunlit5 ~]#
访问结果
基于端口访问方式
[root@sunlit5 ~]# grep ^Listen /etc/httpd/conf/httpd.conf
Listen 80
Listen 81
[root@sunlit5 ~]#
[root@sunlit5 ~]# tail -9 /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.21.5:80>
DocumentRoot /var/www/html/sunlit5
</VirtualHost>
<VirtualHost 192.168.21.5:81>
DocumentRoot /var/www/html/sunlit6
</VirtualHost>
[root@sunlit5 ~]#
访问结果
原文地址:https://blog.csdn.net/u010722862/article/details/128060667
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_12693.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。