Apache和PHP结合,Apache虚拟主机
一. 配置Apache和PHP结合
1. 安装完PHP和Apache后,首先编辑Apache的配置文件,
我的Apache是安装在 /usr/local/httpd2.4 这个目录下
那么配置文件就在 /conf/httpd.conf 这个位置
执行如下命令编辑配置文件
vim /usr/local/httpd2.4/conf/httpd.conf
1.1 定义ServiceName
在配置文件里搜索‘ServiceName’ ,找到这一行,将这一行前面的‘#’号取消掉
1.2 为了防止打开虚拟主机配置文件的时候显示 403
搜索关键字 denide 找到Require all denied这一行
更改为 :Require all granted,有两处都记得更改
1.3 增加一行和PHP相关的配置
搜索关键字 AddType ,找到图片中这两行,添加标红框的这一行
AddType application/x-httpd-php .php
1.4 增加一个索引页,
搜索关键字 dir_module ,找到图片中的这一行,添加红框中的这一段
index.php
2. 配置文件更改完成,需要检查配置文件的语法是否正确,在重新加载配置文件
2.1 检查Apache配置文件的语法是否正确,使用选项 -t ,显示 ‘Syntax OK’表示没有问题
[[email protected] /]#
/usr/local/httpd2.4/bin/apachectl -t
Syntax OK
2.2 重新加载Apache的配置文件,使用 graceful
/usr/local/httpd2.4/bin/apachectl graceful
3. 测试PHP是否可以正常解析
3.1 编辑一个php文件
vim /usr/local/httpd2.4/htdocs/1.php
#在文件里面添加如下内容,意思是打印PHP的信息
<?php
phpinfo();
?>
3.2 在浏览器里面输入IP地址访问,我的测试机器IP地址为:192.168.177.7
在浏览器里面输入 192.168.177.7/1.php ,查看PHP是否可以正常解析
如果看到是这样的页面表示PHP可以正常解析。
4. PHP如果不能正常解析的排查步骤
4.1 确认Apache的modules下面是否存在 PHP模块
[[email protected] /]# ls /usr/local/httpd2.4/modules/libphp5.so
/usr/local/httpd2.4/modules/libphp5.so
4.2 确认Apache的配置文件里是否加载PHP模块,途中标红的一行
4.3 确认是否添加下图红框中的一行
二、 Apache默认虚拟主机
Apache虚拟主机就是在一个Apache服务器上配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。
1. 为了测试需要,需要修改windows机器上的host
进入 C:\Windows\System32\drivers\etc 目录下,找到一个名为host的文档
打开后添加一行 ,我的测试机 IP地址为192.168.177.7 域名设置为www.aaa.com和 www.123.com
192.168.177.7
www.aaa.com www.123.com
2. 编辑 Apache配置文件
vim /usr/local/httpd2.4/conf/httpd.conf
搜索关键字extra,找到图中的这两行,将第二行开头的‘#’号删除,
3. 打开Apache虚拟主机的配置文件
vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf
将内容更改为如图所示
4.创建目录
mkdir /data/wwwroot/
mkdir /data/wwwroot/aaa.com
mkdir /data/wwwroot/123.com
5.在相对应目录下创建测试文件
#添加如下内容
<?php
echo "aaa.com";
添加如下内容
<?php
echo "aaa.com";
6. 使用curl访问网站
在主配置文件打开虚拟主机配置文件,一旦虚拟主机配置文件生效那么DocumentRoot 以及ServicrName就会失效
虚拟主机配置一旦打开生效,那么可以定义很多个VirtualHost,每个VirtualHos都有一个对应的 DocumentRoot 以及ServerName,ServerName可以写多个,
每一个VirtualHost都代表一个站点都是一个虚拟主机
比较特殊的是默认虚拟主机,无论任何域名解析到这个IP上都会访问这虚拟主机