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’ ,找到这一行,将这一行前面的‘#’号取消掉
          Apache和PHP结合,Apache虚拟主机
    1.2 为了防止打开虚拟主机配置文件的时候显示 403 
          搜索关键字 denide  找到Require all denied这一行
          更改为 :Require all granted,有两处都记得更改
          Apache和PHP结合,Apache虚拟主机
    1.3 增加一行和PHP相关的配置
          搜索关键字 AddType ,找到图片中这两行,添加标红框的这一行
          AddType application/x-httpd-php .php
          Apache和PHP结合,Apache虚拟主机
     1.4 增加一个索引页,
           搜索关键字 dir_module  ,找到图片中的这一行,添加红框中的这一段
            index.php
          Apache和PHP结合,Apache虚拟主机
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可以正常解析。
Apache和PHP结合,Apache虚拟主机

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模块,途中标红的一行
Apache和PHP结合,Apache虚拟主机
     4.3  确认是否添加下图红框中的一行
Apache和PHP结合,Apache虚拟主机


二、 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,找到图中的这两行,将第二行开头的‘#’号删除,
Apache和PHP结合,Apache虚拟主机
3. 打开Apache虚拟主机的配置文件
vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf
   将内容更改为如图所示
  Apache和PHP结合,Apache虚拟主机
4.创建目录
mkdir /data/wwwroot/
mkdir /data/wwwroot/aaa.com
mkdir /data/wwwroot/123.com
5.在相对应目录下创建测试文件
[[email protected] /]# vim /data/wwwroot/aaa.com/index.php
#添加如下内容
<?php
echo "aaa.com";

[[email protected] /]# vim /data/wwwroot/123.com/index.php
添加如下内容
<?php
echo "aaa.com";

6. 使用curl访问网站
在主配置文件打开虚拟主机配置文件,一旦虚拟主机配置文件生效那么DocumentRoot 以及ServicrName就会失效
虚拟主机配置一旦打开生效,那么可以定义很多个VirtualHost,每个VirtualHos都有一个对应的 DocumentRoot 以及ServerName,ServerName可以写多个,
每一个VirtualHost都代表一个站点都是一个虚拟主机
比较特殊的是默认虚拟主机,无论任何域名解析到这个IP上都会访问这虚拟主机