码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-03-02 01:25:07      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:Apache   PHP   虚拟主机   

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


技术分享图片


1,修改ServerName

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

[root@localhost ~]# /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,一切正常

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl restart
httpd not running, trying to start
[root@localhost ~]# 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

[root@localhost ~]# 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


·检查配置文件语法:

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK


·重新加载配置:

[root@localhost ~]# /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

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

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful

访问http://192.168.65.128/1.php

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


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

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

则需要检查Apache配置文件

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

[root@localhost ~]# /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

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

[root@localhost ~]# /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

[root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf

搜索httpd-vhost,去掉#

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

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

[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf


ServerAdmin          管理员邮箱,可删掉

DocumentRoot      网站根目录

ServerName          域名

ServerAlias          别名(可取多个)

ErrorLog               错误日志

CustomLog          访问日志

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


创建目录

[root@localhost ~]# mkdir /data/wwwroot/
[root@localhost ~]# mkdir /data/wwwroot/abc.com
[root@localhost ~]# mkdir /data/wwwroot/111.com
[root@localhost ~]# vim /data/wwwroot/abc.com/index.php

定义一个index.php

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

可不带结尾

111.com中也定义一个php

[root@localhost ~]# vim /data/wwwroot/111.com/index.php

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

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful

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

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


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


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

标签:Apache   PHP   虚拟主机   

原文地址:http://blog.51cto.com/11530642/2074500

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!