未修改前php
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl start AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::531b:14ea:3a75:f113. Set the 'ServerName' directive globally to suppress this message httpd (pid 5756) already running
定義ServerNamelinux
完成修改後web
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl restart [root@linux-5 ~]#
[root@linux-5 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
測試鏈接Apache服務器apache
<Directory /> AllowOverride none Require all granted //將denied改成granted </Directory> ... DocumentRoot "/usr/local/apache2.4/htdocs" <Directory "/usr/local/apache2.4/htdocs"> ... Require all granted //將denied改成granted </Directory>
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl graceful
增長索引頁能夠直接輸入域名或IP,後自動跳轉至索引頁,無需單獨輸入vim
[root@linux-5 ~]# vim /usr/local/apache2.4/htdocs/test.php <?php phpinfo(); ?> //該腳本用於打印PHP版本信息
注:增長PHP文件無需重啓服務服務器
上圖爲成功解析PHP腳本文件的效果,若是不支持解析,則會產生以下結果網絡
Tips:使用ctrl+r能夠快速查找並使用歷史命令dom
不一樣的主機名解析到不一樣的IP地址,提供虛擬主機服務的機器上同時設置有這些IP地址。服務器根據用戶請求的目的IP地址來斷定用戶請求的是哪一個虛擬主機的服務,從而進一步的處理。(默認虛擬主機只能定義單一域名,且爲使用該服務器IP所跳轉的惟一Apache站點,全部域名均會跳轉至惟必定義的DocumentRoot下的網站根目錄,一個配置文件只能定義一個Severname)curl
一臺服務器能夠訪問多個網站,每一個網站都是一個虛擬主機tcp
任何一個域名解析到這臺機器,均可以訪問的虛擬主機就是默認虛擬主機
路徑C:\Windows\System32\drivers\etc\hosts
因爲默認虛擬主機只能使全部域名指向同一網站根目錄,不易於管理,所以能夠打開虛擬主機配置文件,使得不一樣域名能夠跳轉至不一樣網站。
[root@linux-5 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf # Virtual Hosts ... <VirtualHost *:80> //可定義多個虛擬主機(當前第一個) ServerAdmin webmaster@dummy-host.example.com //管理員郵箱,可不填寫 DocumentRoot "/data/wwwroot/abc.com" //網站的根目錄 ServerName abc.com //網站(服務器)名稱,惟一 ServerAlias www.abc.com www.123.com //網站(服務器)別名,可多個 ErrorLog "logs/abc.com-error_log" //錯誤日誌 CustomLog "logs/abc.com-access_log" common //訪問日誌 </VirtualHost> <VirtualHost *:80> //可定義多個虛擬主機(當前第二個) ServerAdmin webmaster@dummy-host2.example.com //管理員郵箱,可不填寫 DocumentRoot "/data/wwwroot/def.com" //網站的根目錄 ServerName def.com //網站(服務器)名稱,惟一 ServerAlias www.def.com www.456.com //網站(服務器)別名,可多個 ErrorLog "logs/def.com-error_log" //錯誤日誌 CustomLog "logs/def.com-access_log" common //訪問日誌 </VirtualHost>
注:一旦虛擬主機配置文件生效,則默認主機配置的文件定義的內容會失效
/usr/local/apache2.4/bin/apachectl -t /usr/local/apache2.4/bin/apachectl graceful
在虛擬主機配置文件中不能在代碼後添加註釋,不然會引發報錯
[root@linux-5 ~]# mkdir /data/wwwroot/ [root@linux-5 ~]# mkdir /data/wwwroot/abc.com [root@linux-5 ~]# mkdir /data/wwwroot/def.com
[root@linux-5 ~]# vim /data/wwwroot/abc.com/index.php <?php echo "abc.com"; [root@linux-5 ~]# vim /data/wwwroot/def.com/index.php <?php echo "def.com";
curl -x //發送網絡請求,-x選項爲網絡請求增長代理,至關於hosts的做用
[root@linux-5 ~]# curl -x 192.168.88.5:80 abc.com abc.com[root@linux-5 ~]#
[root@linux-5 ~]# curl -x 192.168.88.5:80 def.com def.com[root@linux-5 ~]#
在測試過程當中使用的是兩個虛擬主機,則第一個虛擬主機則是Apache服務的默認虛擬主機,不管訪問哪一個域名(其餘虛擬主機定義的域名除外),只要指向了服務器的IP地址,都會跳轉至默認虛擬主機。咱們實驗所使用的Linux虛擬機,在其上安裝的Apache服務的主配置文件,至關於實體主機,也是默認主機,只能指定一個域名,訪問單一目錄下的文件。