11.14/11.15 Apache和PHP结合
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
在启动httpd的时候有警告提示,要在配置文件里定义下ServerName
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
vim /usr/local/apache2.4/conf/httpd.conf
输入/ServerName搜索将前面的#取消,输入/php5.so搜索将PHP7或PHP5注释掉,根据的apache模块实际情况,我这里是注释PHP5,注释php7重启服务会报错,因为调用了PHP7模块,如果调用的是PHP5那就要注释掉PHP7
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
然后重启服务,没有警告提示了
/usr/local/apache2.4/bin/apachectl restartrs
win ping linux的IP,是否可以通,连接下80端口 telnet 192.168.137.129 80,如果提示没有这个命令,就要在控制面板下的启动或关闭windows功能下添加telnet客户端
打开linux 80端口,让win可以访问
iptables -nvL 查看端口,如果没有80端口的
这里临时增加80端口
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
然后重新打开win dos窗口并连接 telnet 192.168.137.129 80,这时候就可以连接上了,按ctrl + ] 输入quit退出
更改Require all denied
vim /usr/local/apache2.4/conf/httpd.conf
输入/denied搜索
将Require all denied更改Require all granted
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
刚才在win可以访问是因为Require all denied下面有一项是Require all granted,如果将Require all granted改为Require all denied 然后查看配置文件是否有语法错误用以下命令,这条命令非常实用
/usr/local/apache2.4/bin/apachectl -t
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
更改完后重新加载配置文件,用下面这个命令,但它不针重启服务
/usr/local/apache2.4/bin/apachectl graceful
刚才更改的Require all granted往下还有一个Require all granted,如果更改这个为
Require all denied win访问就报错,不允许访问
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
因为要支持PHP,所以需要增加一行与PHP相关的配置,如果不加这行,PHP就没办法解析
vim /usr/local/apache2.4/conf/httpd.conf
输入/AddType搜索,在以下位置添加AddType application/x-httpd-php .php
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
还要修改索引页
编辑配置文件,输入/Index搜索,找到这行DirectoryIndex index.html在后面添加index.php
然后检查配置有没有错误,重新加载配置文件
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
验证apache是否支持PHP
它访问的这个目录是/usr/local/apache2.4/htdocs的文件,编辑这个目录下可以写一个1.php
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
内容如下
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
这时候在win访问这个页面,就可以打开这个页面,说明支持PHP解析了
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
如果打这行注释掉DirectoryIndex index.html再重新加载配置文件
win再访问网面就会不支持,打不开页面
如果遇到apach解析不了,要检查apache的配置文件
首行要检查
/usr/local/apache2.4/bin/apachectl -M 看一下有没有加载php5或php7模块
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
如果没有加载要查看一下有没有这个模块
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
如果有这个模块但没有加载 那要检查一下配置文件有没有php5或php7增加这一行
vim /usr/local/apache2.4/conf/httpd.conf
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
查找 用过的命令搜索,可以ctrl+r再输入搜索的字符,例如grac,就会显示刚用过的命令
/usr/local/apache2.4/bin/apachectl graceful

11.16 11.17 Apache默认虚拟主机
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
打开虚拟主机配置文件
vim /usr/local/apache2/conf/httpd.conf
搜索/extra,找到Virtual hosts下面的的一行的#注释掉
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
每一个80端口代表一个主机
更改主机参数如下图所示
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
分别创建目录
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
在对应的站点根目录abc.com下定义文件
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
内容如下
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
在对应的站点根目录111.com下定义文件
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
内容如下
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
检查 配置文件有没有错,再重新加载
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
curl -x 将abc.com指定IP与端口,无论那个域名只要访问到这个IP都会访问到abc.com
因为abc.com是默认的虚拟主机
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
下面这个是指定的到111.com,如果不指定就会访问abc.com
11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
一旦打开了VirtualHosts,httpd.conf里面的ServerName等都会失效