先输入命令 vim /usr/local/apache2.4/conf/httpd.conf,回车查看,见下图,
e2.4/conf/httpd.conf /usr/local/apache2.4/conf/httpd.conf /usr/loc
解析php,这边须要修改如下4个地方:
一、ServerName
二、Require all denied
三、AddType application/x-httpd-php .php
四、DirectoryIndex index.html index.phpphp
一、ServerNamehtml
好比以前命令 /usr/local/apache2.4/bin/apachectl restart,回车,见下图,
这段提示看似报错,实际上是正常的提示。若是咱们不想看到这段话,就能够在文件 /usr/local/apache2.4/conf/httpd.conf 里面更改。从新使用 vim 进入文件,搜索 /ServerName,具体更改见下图,
将上图红色框框内的#去掉,保存并退出。从新输入刚才的命令,见下图,
这边出现错误提示,显示79行有问题,使用 vim 命令再次进入查看,见下图,
找到79行,在行首用#注释掉内容,保存并退出,接着restart,见下图,
错误仍是存在,停掉后从新打开仍是这样。这时候就该想到应该是打开了两个php的结果。使用 !vim 命令,进入,把79行的#去掉,恢复原来的状态,将php7用#注释掉,见下图,
保存并退出,再尝试重启,见下图,
这时候就没有提示了。很明显,php5和php7是有冲突的。接着看一下进程,输入命令 ps aux |grep httpd,回车,见下图,apache
二、Require all deniedvim
这边须要增长一行配置,如今先查看一下 IP,输入命令 ifconfig,回车,见下图,
IP 就是上图红色框框显示的 192.168.218.128 。而后在浏览器上的地址栏里面输入 IP 地址,回车,见下图,
一会以后,能够看到 IP 是没法访问的,蓝色的字体提示“检查代理服务器和防火墙”。那么,遇到这种问题,要怎么排查呢?先在Windows上 cmd 里面 ping 一下 IP,见下图,
能够看到 IP 是能够通的,接着再判断它的 80 端口。上图显示没有 telnet 这个命令,是由于咱们没有打开 telnet 客户端,如今将这个客户端的程序打开,具体操做见下图,
先打开“控制面板”,点击“程序”,进入下图,
点击“启用或关闭Windows功能”,进入下图,
选中“Telnet客户端”,再点击“肯定”,一会以后,就显示下图,
点击关闭便可,返回Windows的cmd,从新输入命令 telnet 192.168.128.218 80,回车,见下图,
显示 80 端口链接失败。由于 Linux 虚拟机上并无打开 80 端口,能够在 putty 上使用命令 iptables -nvL 来查看,见下图,
能够看到没有 80 端口,要想让 Windows 访问 80 端口,可使用命令 iptables -I INPUT -p tcp --dport 80 -j ACCEPT ,临时加上 80 端口,见下图,
执行完上述命令,回到 Windows 的 cmd 上,从新输入刚才的命令 telnet 192.168.218.128 80,回车,见下图,
进入这样子的界面,就表示 80 端口通了。按住 ctrl+】,就能够退出上图界面,再输入命令 quit,能够返回到原来的界面。见下图,
再回到浏览器上刷新刚才的IP地址,见下图,
能够看到几个大字“It works!”,这样子就表示能够访问了。
回到 putty 上,输入命令 vim /usr/local/apache2.4/conf/httpd.conf,回车,搜索 /Require,回车,见下图,
这边须要把上图两个红色框框里的内容作个更改,见下图,
保存并退出。改完配置后,使用命令 /usr/local/apache2.4/bin/apachectl -t ,来检查配置文件的语法是否正确。见下图,
能够看到结果是 OK,说明配置文件的语法没有问题。能够故意在配置文件里面加一些任意内容,见下图,
保存并退出,从新执行命令 /usr/local/apache2.4/bin/apachectl -t,见下图,
就能看到报错了,因此这是个颇有用的命令,能够检测配置文件的语法。再把配置文件改回去,这边不显示过程了。接着从新加载配置文件,使用命令 /usr/local/apache2.4/bin/apachectl graceful,回车,见下图,
而后回到浏览器上,刷新刚才的 IP 地址,见下图,
就会看到显示禁止的页面,就是不容许访问的意思。因此,回到配置文件那边,要把两边的内容都改成 granted,保存并退出,见下图,
这样才能够保证网页是容许访问的。浏览器
三、AddType application/x-httpd-php .php
四、DirectoryIndex index.html index.php服务器
增长一行与 php 相关的内容,输入命令 vim /usr/local/apache2.4/conf/httpd.conf,回车,搜索 /AddType,回车,找到下图内容,
增长红色框框的内容 AddType application/x-httpd-php .php,再次搜索 /Index,回车,找到下图内容,
增长红色框框的内容 index.php,保存并退出。而后检查一下配置文件语法,并从新加载配置文件,见下图,
如今来验证一下,apache 能不能支持解析 php,先来写一个测试的 php 脚本,输入命令 vi /usr/local/apache2.4/htdocs/1.php,回车,见下图,
输入上图内容,保存并退出。接着回到浏览器,访问地址 192.168.218.128/1.php,
能够看到这个很漂亮的页面,说明php就支持解析成功了。如今来看一下,不支持解析的话,会出现什么页面?到 putty 上更改配置文件,输入命令 vim /usr/local/apache2.4/conf/httpd.conf,回车,见下图,
将上图红色框框的这一行,用#号注释掉,保存并退出。接着检查和加载配置文件,见下图,
而后回到浏览器,刷新页面,见下图,
出现的就是源代码,这就是php不能解析的状况。因此,之后碰到php不能解析的状况,就要检查一下apache文件,首先要检查php有没有加载,使用命令 /usr/local/apache2.4/bin/apachectl -M,回车,见下图,
能够看到最后一项有php5。若是没有加载的话,要看一下有没有这个模块文件,输入命令 ls /usr/local/apache2.4/modules/libphp5.so,回车,见下图,
没有这个文件的话,就没法加载php。若是有文件,而加载项里面没有显示php的话,就要检查配置文件了,输入命令 vim /usr/local/apache2.4/conf/httpd.conf,回车,搜索 /libphp5.so,见下图,
查看有没有上图红色框框这一行,没有的话,确定就不能解析了。接下来继续检查,搜索 /AddType,回车,见下图,
查看有没有红色框框这一行,而后仔细认真查看,红色框框的内容格式是否正确,这边可使用命令 /usr/local/apache2.4/bin/apachectl -t 来检查。接着搜索 /index.php,回车,见下图,
注意上图红色框框的内容是否有添加上去。这个是索引的做用,使用命令 ls /usr/local/apache2.4/htdocs/,回车,见下图,
里面有个 index.html 文件,这就是以前在上上图定义了 index.php,这边就能够直接跳转访问 index.html 这个文件,因此在浏览器上访问 192.168.218.128 时,会出现 It works!,这几个字。php7
因php5和php7不能共存,如今来试试php7。进入配置文件,搜索 /libphp,回车,见下图,
更改上图红色框框的内容,见下图,
保存并退出,接着检查和加载配置文件,见下图,
回到 浏览器,刷新页面,见下图,
也是能够看到这个漂亮的页面,这边注意版本号,和前面的php5是不同的。说明php7也生效了,能够解析的。在putty上输入命令 /usr/local/php7/bin/php -i |less,回车,见下图,
能够看到,网页上显示的内容和这边的内容,基本上是一致的。按字母 q 能够退出上图界面。app