Apache和PHP结合

安装完PHP和Apache后,首先编辑Apache的配置文件

我的Apache是安装在 /usr/local/apache2.4 这个目录下 那么配置文件就在 /usr/local/apache2.4/conf/httpd.conf 这个位置

编辑配置文件 vim /usr/local/apache2.4/conf/httpd.conf

在配置文件里搜索‘ServiceName’ ,找到这一行,将这一行前面的‘#’号取消掉

为了防止打开虚拟主机配置文件的时候显示 403 搜索关键字 denide 找到Require all denied这一行 更改为 :Require all granted,有两处都记得更改

增加一行和PHP相关的配置 搜索关键字 AddType ,找到图片中这两行,添加标红框的这一行 AddType application/x-httpd-php .php

增加一个索引页, 搜索关键字 Index ,找到图片中的这一行,添加红框中的这一段 index.php

配置文件更改完成,需要检查配置文件的语法是否正确,在重新加载配置文件

检查Apache配置文件的语法是否正确,使用选项 -t ,显示 ‘Syntax OK’表示没有问题 /usr/local/apache2.4/bin/apachectl -t

重新加载Apache的配置文件,使用 graceful /usr/local/apache2.4/bin/apachectl graceful

测试PHP是否可以正常解析 编辑一个php文件 vim /usr/local/apache2.4/htdocs/index.php

在文件里面添加如下内容,意思是打印PHP的信息

<?php
phpinfo();
?>

在浏览器里面输入IP地址访问,我的测试机器IP地址为:192.168.71.131 在浏览器里面输入 192.168.71.131,查看PHP是否可以正常解析 如果看到是这样的页面表示PHP可以正常解析。

PHP如果不能正常解析的排查步骤 确认Apache的modules下面是否存在 PHP模块 ls /usr/local/httpd2.4/modules/libphp5.so

确认Apache的配置文件里是否加载PHP模块,途中标红的一行

确认是否添加下图红框中的一行

Apache默认虚拟主机

Apache虚拟主机就是在一个Apache服务器上配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。

为了测试需要,需要修改windows机器上的hosts 进入 C:\Windows\System32\drivers\etc 目录下,找到一个名为hosts的文档 打开后添加一行 ,我的测试机 IP地址为192.168.71.131 域名设置为www.mm.com和 www.yy.com 作用就是让你临时访问到一个服务器上去。(在dns还没生效的时候可以用) 192.168.71.131 www.mm.com www.yy.com

编辑 Apache配置文件 vim /usr/local/apache2.4/conf/httpd.conf

搜索关键字extra,找到图中的这两行,将第二行开头的‘#’号删除,

打开Apache虚拟主机的配置文件 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

里面每一个<VirtualHost *:80>都代表一个主机,一个主机就是一个网站。(如果不打开虚拟主机配置文件就只能访问到一个主机)

我们可以给它定义一下 DocumentRoot 定义网站根目录

ServerName 定义域名

ServerAlias 定义网站别名,可以写多个

ErrorLog 指定错误日志

CustomLog 访问日志

这样我们就定义了一个网站(最核心的是网站根目录,域名,别名)

创建目录

mkdir /data/wwwroot/
mkdir /data/wwwroot/mm.com
mkdir /data/wwwroot/yy.com

在相对应目录下创建测试文件 vim /data/wwwroot/mm.com/index.php

添加如下内容 <?php echo "帅陽陽";

vim /data/wwwroot/yy.com/index.php <?php echo "我爱你";

检查配置是否正常,然后重新加载Apache /usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

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