Apache(httpd)的配置文件:/usr/local/apache2.4/conf/httpd.conf。php
由於本機安裝了兩個版本的PHP,因此須要進行該配置,若是隻裝一個PHP服務則會默認調用存在的PHP服務(在此選用PHP5)。html
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… LoadModule php5_module modules/libphp5.so #LoadModule php7_module modules/libphp7.so
說明: 指定Apache調用PHP5。linux
graph LR 開始-->控制面板 控制面板-->程序 程序-->打開或關閉Windows功能 打開或關閉Windows功能-->選擇telnet客戶端
更改配置文件: [root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… <Directory /> AllowOverride none Require all granted </Directory> …… 檢測配置是否存在語法錯誤: [root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK 從新加載服務: [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful 注:該命令不會使服務重啓,只是加載配置文件的內容。
說明: 將此處的「Require all denied」改成「Require all granted」。apache
添加監聽80端口的規則:vim
[root@1 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
說明: 至此,可使用瀏覽器直接訪問本地虛擬機IP。瀏覽器
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php # ……
說明: 在此添加「AddType application/x-httpd-php .php」,意思是容許PHP服務解析該服務器。服務器
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> …… 檢測、加載: [root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful
說明: 在此添加「index.php」,php7
[root@1 ~]# vim /usr/local/apache2.4/htdocs/1.php <?php phpinfo(); #該參數的含義是PHP的信息 ?> #該命令的含義是:在訪問該地址時,直接打印PHP的相關信息
說明: 建立一個php文件,而後使用瀏覽器訪問該文件(此時不須要重啓服務器):app
即,能夠正常訪問,說明該服務器支持PHP解析,若是不支持php解析的話,訪問該文件時會顯示源代碼。curl
完成PHP解析配置!
故障: 服務器沒法進行PHP解析!
解決辦法:
[root@1 ~]# /usr/local/apache2.4/bin/apachectl -M
若是沒有加載,則須要檢查系統中有沒有PHP模塊:
[root@1 ~]# ls /usr/local/apache2.4/modules/libphp5.so /usr/local/apache2.4/modules/libphp5.so
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… #LoadModule php5_module modules/libphp5.so LoadModule php7_module modules/libphp7.so 檢測、加載: [root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful
說明: 因在進行PHP5解析配置時已完成其餘相關配置,因此在此只需更改要調用的PHP版本便可,若是初次配置,操做同PHP5.
ctrl+r用途:反向搜索並調用執行過的命令。(reverse-i-search)。
使用方法:按ctrl+r後命令行會變成「(reverse-i-search)`': 」狀態,而後輸入使用過的參數,此時會直接顯示出相關的命令,回車便可執行該命令。
Windows系統中hosts位置「C:\Windows\System32\drivers\etc\hosts」。
說明: 在此能夠自定義匹配本地IP和域名,目的是添加臨時訪問地址(在DNS未生效的時候使用)。
在hosts文件中添加「192.168.8.131 www.adai.com」便可將本地虛擬主機添加到Windows系統,訪問該域名時會自動解析到本地虛擬主機「ServerName www.example.com:80」。
在物理機訪問的域名「www.adai.com」並未在虛擬機Apache配置文件中定義,虛擬機中只定義了「ServerName www.example.com:80」一個域名,該域名即爲Apache的默認主機,此時經過任何一個綁定該虛擬機IP的域名進行訪問都會跳轉到該主機。
由於一臺服務器能夠跑多個域名,爲了方便管理,須要對虛擬主機進行配置:
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… # Virtual hosts Include conf/extra/httpd-vhosts.conf ……
說明: 編輯「Virtual hosts(虛擬主機)」的參數,去掉#,啓用虛擬主機配置文件「httpd-vhosts.conf」。
注: Apache也支持單獨管理每一個虛擬主機,配置參數以下:
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… # Virtual hosts Include conf/extra/vhosts/*.conf …… [root@1 ~]# mkdir /usr/local/apache/conf/extra/vhosts
以後在/usr/local/apache/conf/extra/vhosts目錄中建立虛擬主機就能夠。
[root@1 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
該配置文件下每組「< VirtualHost *:80 >」表明一個主機(即:一個網站):
進行以下編輯:
<VirtualHost *:80> 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-error_log" common #日誌文件 </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
此時即定義了一個網站,定義網站的核心參數即爲:DocumentRoot(網站根目錄)、ServerName(域名)。
注意: 虛擬主機生效後,原Apache配置文件中的默認主機(www.example.com ~ 192.168.8.131)就會失效(在此用www.example.com ~ 111.com進行驗證)。
[root@1 ~]# mkdir /data/wwwroot/ [root@1 ~]# mkdir /data/wwwroot/abc.com [root@1 ~]# mkdir /data/wwwroot/111.com
在相應目錄建立PHP文件:
[root@1 ~]# vim /data/wwwroot/abc.com/index.php <?php echo "welcome to abc.com"; ?> [root@adailinux ~]# vim /data/wwwroot/111.com/index.php <?php echo "welcome to 111.com"; ?>
檢測、重載Apache配置文件:
[root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful
在此使用瀏覽器和curl命令分別進行測試。
若是不在虛擬機中進行本地域名配置(hosts),在進行ping命令測試虛擬主機域名時會訪問到外網。
[root@1 ~]# ping www.abc.com PING abc.com (199.181.132.250) 56(84) bytes of data.
若是想在訪問「abc.com」時指向到本地虛擬機IP,能夠在/etc/hosts文件中指定域名,或者使用curl命令進行訪問,以下:
eg:
[root@1 ~]# curl -x192.168.8.131:80 abc.com welcom to abc.com
注意: 此時訪問全部未定義的域名都會將訪問地址指向到默認虛擬主機,由於已經自定義添加了虛擬主機,因此此時的默認虛擬主機爲配置文件「httpd-vhosts.conf」中的第一個虛擬主機(在此爲abc.com),效果以下:
[root@1 ~]# curl -x192.168.8.131:80 www.abcde.com welcom to abc.com