11.14/11.15 Apache和PHP結合 11.16/11.17 Apache默認虛擬主機
阿新 • • 發佈:2018-03-02
十周第二次課(3月1日)11.14/11.15 Apache和PHP結合
在啟動httpd的時候有警告提示,要在配置文件裏定義下ServerName
vim /usr/local/apache2.4/conf/httpd.conf
輸入/ServerName搜索將前面的#取消,輸入/php5.so搜索將PHP7或PHP5註釋掉,根據的apache模塊實際情況,我這裏是註釋PHP5,註釋php7重啟服務會報錯,因為調用了PHP7模塊,如果調用的是PHP5那就要註釋掉PHP7
然後重啟服務,沒有警告提示了
/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端口
然後重新打開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
剛才在win可以訪問是因為Require all denied下面有一項是Require all granted,如果將Require all granted改為Require all denied 然後查看配置文件是否有語法錯誤用以下命令,這條命令非常實用
/usr/local/apache2.4/bin/apachectl -t
更改完後重新加載配置文件,用下面這個命令,但它不針重啟服務
/usr/local/apache2.4/bin/apachectl graceful
剛才更改的Require all granted往下還有一個Require all granted,如果更改這個為
Require all denied win訪問就報錯,不允許訪問
因為要支持PHP,所以需要增加一行與PHP相關的配置,如果不加這行,PHP就沒辦法解析
vim /usr/local/apache2.4/conf/httpd.conf
輸入/AddType搜索,在以下位置添加AddType application/x-httpd-php .php
還要修改索引頁
編輯配置文件,輸入/Index搜索,找到這行DirectoryIndex index.html在後面添加index.php
然後檢查配置有沒有錯誤,重新加載配置文件
驗證apache是否支持PHP
它訪問的這個目錄是/usr/local/apache2.4/htdocs的文件,編輯這個目錄下可以寫一個1.php
內容如下
這時候在win訪問這個頁面,就可以打開這個頁面,說明支持PHP解析了
如果打這行註釋掉DirectoryIndex index.html再重新加載配置文件
win再訪問網面就會不支持,打不開頁面
如果遇到apach解析不了,要檢查apache的配置文件
首行要檢查
/usr/local/apache2.4/bin/apachectl -M 看一下有沒有加載php5或php7模塊
如果沒有加載要查看一下有沒有這個模塊
如果有這個模塊但沒有加載 那要檢查一下配置文件有沒有php5或php7增加這一行
vim /usr/local/apache2.4/conf/httpd.conf
查找 用過的命令搜索,可以ctrl+r再輸入搜索的字符,例如grac,就會顯示剛用過的命令
/usr/local/apache2.4/bin/apachectl graceful
在啟動httpd的時候有警告提示,要在配置文件裏定義下ServerName
vim /usr/local/apache2.4/conf/httpd.conf
輸入/ServerName搜索將前面的#取消,輸入/php5.so搜索將PHP7或PHP5註釋掉,根據的apache模塊實際情況,我這裏是註釋PHP5,註釋php7重啟服務會報錯,因為調用了PHP7模塊,如果調用的是PHP5那就要註釋掉PHP7
然後重啟服務,沒有警告提示了
/usr/local/apache2.4/bin/apachectl restartrs
win ping linux的IP,是否可以通,連接下80端口 telnet 192.168.137.129 80,如果提示沒有這個命令,就要在控制面板下的啟動或關閉windows功能下添加telnet客戶端
iptables -nvL 查看端口,如果沒有80端口的
這裏臨時增加80端口
然後重新打開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
剛才在win可以訪問是因為Require all denied下面有一項是Require all granted,如果將Require all granted改為Require all denied 然後查看配置文件是否有語法錯誤用以下命令,這條命令非常實用
更改完後重新加載配置文件,用下面這個命令,但它不針重啟服務
/usr/local/apache2.4/bin/apachectl graceful
剛才更改的Require all granted往下還有一個Require all granted,如果更改這個為
Require all denied win訪問就報錯,不允許訪問
因為要支持PHP,所以需要增加一行與PHP相關的配置,如果不加這行,PHP就沒辦法解析
vim /usr/local/apache2.4/conf/httpd.conf
輸入/AddType搜索,在以下位置添加AddType application/x-httpd-php .php
還要修改索引頁
編輯配置文件,輸入/Index搜索,找到這行DirectoryIndex index.html在後面添加index.php
然後檢查配置有沒有錯誤,重新加載配置文件
驗證apache是否支持PHP
它訪問的這個目錄是/usr/local/apache2.4/htdocs的文件,編輯這個目錄下可以寫一個1.php
內容如下
這時候在win訪問這個頁面,就可以打開這個頁面,說明支持PHP解析了
如果打這行註釋掉DirectoryIndex index.html再重新加載配置文件
win再訪問網面就會不支持,打不開頁面
如果遇到apach解析不了,要檢查apache的配置文件
首行要檢查
/usr/local/apache2.4/bin/apachectl -M 看一下有沒有加載php5或php7模塊
如果沒有加載要查看一下有沒有這個模塊
如果有這個模塊但沒有加載 那要檢查一下配置文件有沒有php5或php7增加這一行
vim /usr/local/apache2.4/conf/httpd.conf
查找 用過的命令搜索,可以ctrl+r再輸入搜索的字符,例如grac,就會顯示剛用過的命令
/usr/local/apache2.4/bin/apachectl graceful
11.16 11.17 Apache默認虛擬主機
打開虛擬主機配置文件
vim /usr/local/apache2/conf/httpd.conf
搜索/extra,找到Virtual hosts下面的的一行的#註釋掉
每一個80端口代表一個主機
更改主機參數如下圖所示
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
分別創建目錄
在對應的站點根目錄abc.com下定義文件
內容如下
在對應的站點根目錄111.com下定義文件
內容如下
檢查 配置文件有沒有錯,再重新加載
curl -x 將abc.com指定IP與端口,無論那個域名只要訪問到這個IP都會訪問到abc.com
因為abc.com是默認的虛擬主機
下面這個是指定的到111.com,如果不指定就會訪問abc.com
一旦打開了VirtualHosts,httpd.conf裏面的ServerName等都會失效
11.14/11.15 Apache和PHP結合 11.16/11.17 Apache默認虛擬主機