2018-3-1 10周2次课 Apache和PHP结合Apache默认虚拟主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-3-1 10周2次课 Apache和PHP结合Apache默认虚拟主机相关的知识,希望对你有一定的参考价值。

技术分享图片11.14/11.15 Apache和PHP结合


技术分享图片


1,修改ServerName

在启动apache时,会有类似错误提示

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl restart
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

如果不想出现这种错误提示,那么进到 /usr/local/apache2.4/conf/httpd.conf 中找到ServerName,并去掉#注释,保存退出。

技术分享图片技术分享图片

重启apache,出现下图错误

技术分享图片

进到 /usr/local/apache2.4/conf/httpd.conf 中,将php7注释掉,只让apache只加载php5

技术分享图片技术分享图片

保存退出后,重启apache,一切正常

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl restart
httpd not running, trying to start
[[email protected] ~]# ps aux | grep httpd
root      45504  0.2  0.8 253576  8892 ?        Ss   21:48   0:00 /usr/local/apache2.4/bin/httpd -k restart
daemon    45505  0.0  0.6 540404  6936 ?        Sl   21:48   0:00 /usr/local/apache2.4/bin/httpd -k restart
daemon    45506  0.0  0.8 540404  8972 ?        Sl   21:48   0:00 /usr/local/apache2.4/bin/httpd -k restart
daemon    45507  0.0  0.8 540404  8976 ?        Sl   21:48   0:00 /usr/local/apache2.4/bin/httpd -k restart
root      45590  0.0  0.0 112676   984 pts/2    S+   21:49   0:00 grep --color=auto httpd


2,修改Require all denied

[[email protected] ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

访问192.168.65.128,从无法访问变为 It works!

技术分享图片技术分享图片

在windows中,打开telnet,用telnet 192.168.65.128 80,来查看联通情况

技术分享图片技术分享图片

联通之后会跳到次界面

如果不通,则显示正在连接

技术分享图片技术分享图片

技术分享图片技术分享图片

技术分享图片

改完之后,无法访问192.168.65.128

因此,需要把配置文件 Require all denied 改为 Require all granted


·检查配置文件语法:

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK


·重新加载配置:

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful

(优点是不会重启服务器,最多加载不成功,不会把进城杀掉)


3,增加一行 AddType application/x-httpd-php .php ,否则php无法解析

技术分享图片技术分享图片

4,把 DirectoryIndex index.html 改为 DirectoryIndex index.html index.php

技术分享图片技术分享图片技术分享图片


技术分享图片

验证apache支不支持php解析

测试的php脚本:

vim /usr/local/apache2.4/htodcs/1.php

技术分享图片技术分享图片

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful

访问http://192.168.65.128/1.php

技术分享图片技术分享图片


如果访问192.168.65.128/1.php时,出现

技术分享图片技术分享图片

则需要检查Apache配置文件

首先,查看有没有加载php5模块

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M

技术分享图片技术分享图片

看看有没有 /usr/local/apache2.4/modules/libphp5.so 文件

如果有libphp5.so文件,则要查看apache配置文件中有没有加载libphp5.so

技术分享图片技术分享图片

然后,检查配置文件有没有 AddType application/x-httpd-php .php 行

技术分享图片技术分享图片


再检查 DirectoryIndex index.html index.php 这一行,但这一行不影响

index.php ,默认能跳转到index.php下面去


快捷键:ctrl + r  输入关键字,可以搜索到命令历史中有关关键字的命令


把php5禁掉,只用php7

再配置文件中把libphp5.so注释掉,用libphp7.so

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful

访问http://192.168.65.128/1.php时,版本出现了变化

技术分享图片技术分享图片

/usr/local/php7/bin/php -i | less 的结果时上图的文本形式显示。





11.16/11.17 Apache默认虚拟主机


·httpd一个服务下运行了多个网站,多个域名

DNS未生效情况下,可以定义windows中的hosts文件

格式为:ip 域名 域名 。。。


/usr/local/apache2.4/conf/httpd.conf只能定义一个ServerName

[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf

搜索httpd-vhost,去掉#

技术分享图片技术分享图片

编辑虚拟主机配置文件(可以定义多个ServerName):

[[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf


ServerAdmin          管理员邮箱,可删掉

DocumentRoot      网站根目录

ServerName          域名

ServerAlias          别名(可取多个)

ErrorLog               错误日志

CustomLog          访问日志

技术分享图片技术分享图片


创建目录

[[email protected] ~]# mkdir /data/wwwroot/
[[email protected] ~]# mkdir /data/wwwroot/abc.com
[[email protected] ~]# mkdir /data/wwwroot/111.com
[[email protected] ~]# vim /data/wwwroot/abc.com/index.php

定义一个index.php

技术分享图片技术分享图片

可不带结尾

111.com中也定义一个php

[[email protected] ~]# vim /data/wwwroot/111.com/index.php

技术分享图片技术分享图片

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful

技术分享图片技术分享图片

如果找不到域名配置,就会去找默认虚拟主机配置文件,例如www.111.com在配置文件中就没有这个域名或别名,因此直接找默认配置,也就是第一段,所以是abc.com


如有错误,欢迎指正,互相学习。


以上是关于2018-3-1 10周2次课 Apache和PHP结合Apache默认虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

2018-3-1 10周2次课

2018-2-28 10周1次课

2018.3.2 10周3次课

2018-3-2 10周3次课 Apache用户认证域名跳转Apache访问日志

2018-3-2 10周3次课

2018.2.27 9周5次课