先輸入命令 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