這裏須要修改配置文件中的4處,分別爲:
ServerName
Require all denied
AddType application/x-httpd-php .php
DirectoryIndex index.html index.phpphp
步驟 :
修改ServerNamehtml
[root@centos001 ~]# /usr/local/apache2.4/bin/apachectl restart AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe34:4a63. Set the 'ServerName' directive globally to suppress this message
解決方法:編輯這個文件,而後重啓就沒有了
進入配置文件後搜索ServerNamelinux
#進入配置文件 [root@centos001 ~]# vim /usr/local/apache2.4/conf/httpd.conf #搜索 /ServerName
修改Require all deniedapache
爲何要修改?修改的目的是,容許全部請求,若是不設置該行,則咱們訪問的時候會報403錯誤。
修改內容在第6步vim
示例: 打開瀏覽器鏈接咱們虛擬機的ip,
錯誤a:
解決方法:
1.先用cmd鏈接咱們的ip 測試連通性
2.鏈接80端口,下圖是正常的,由於咱們的虛擬機沒有開啓80端口,因此鏈接失敗
centos
錯誤b: cmd中使用telnet報錯
解決方法:
緣由:pc端的80端口關閉了
打開控制面板==>>程序和功能==>>啓用關閉windos功能==>>勾選Telnet客戶端
3.開啓虛擬機上的80端口瀏覽器
# 檢查80端口是否開啓 [root@centos001 ~]# iptables -nvL #開啓80端口 [root@centos001 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
4.用cmd從新鏈接虛擬機80端口,檢查
5.用瀏覽器鏈接虛擬機ip
6.修改配置文件服務器
#打開配置文件 [root@centos001 ~]# vim /usr/local/apache2.4/conf/httpd.conf #修改成 Require all granted
命令補充 :
/usr/local/apache2.4/bin/apachectl -t //測試修改完配置文件後的語法是否規範
/usr/local/apache2.4/bin/apachectl start //啓動服務
/usr/local/apache2.4/bin/apachectl graceful//從新加載配置文件,並不會重啓服務php7
增長配置文件AddType application/x-httpd-php .phpapp
若是不增長這行,你的PHP沒法解析
#打開配置文件 vim /usr/local/apache2.4/conf/httpd.conf #找到位置粘貼 AddType application/x-httpd-php .php
增長DirectoryIndex index.html index.php
增長一個索引頁
1.編寫一個測試腳本
#建立一個叫1.php的文件 [root@centos001 ~]# vi /usr/local/apache2.4/htdocs/1.php #寫入以下信息,保存退出 <?php phpinfo(); //這個函數 能吧php的相關信息打印出來 ?>
2.打開瀏覽器,在虛擬機ip後面加上文件名/1.ph
當沒法正確解析的時候,咱們該如何排錯呢?
方法:
這時候咱們須要檢查Apache的配置文件
1.檢查php模塊是否加載
[root@centos001 ~]# /usr/local/apache2.4/bin/apachectl -M
.若是沒有加載怎麼辦? 檢查一下是否有這個文件
[root@centos001 ~]# ls /usr/local/apache2.4/modules/libphp7.so /usr/local/apache2.4/modules/libphp7.so
.若是有這個文件可是沒有加載,咱們就應該到配置文件中去註釋並加載出來
[root@centos001 ~]# vim /usr/local/apache2.4/conf/httpd.conf
2.檢查配置文件是否有寫或者寫錯沒有
/usr/local/apache2.4/bin/apachectl -t //測試修改完配置文件後的語法是否規範
3.有沒有加index.php索引頁
輸入網站地址後面通常都默認自動添加這個
爲了更清除的認識一下,咱們先來作個實驗
windos下的hosts有什麼用呢? 答:能夠定義一個ip、一個域名,而後讓這個域名指向到這個ip去 1.找到hosts所在目錄,並用記事本打開
2.打開後 添加
3.用cmd測試一下
1.編輯配置文件httpd.conf(這個文件是httpd服務的主配置文件)
vim /usr/local/apache2.4/conf/httpd.conf //搜索httpd-vhost,去掉#
2.更改虛擬主機配置文件
#進入配置文件 [root@centos001 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf #更改後的配置文件內容 <VirtualHost *:80> //一段這樣開頭的就是一個虛擬主機 DocumentRoot "/data/wwroot/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> DocumentRoot "/data/wwroot/111.com" ServerAlias www.example.com ServerName 111.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
3.添加虛擬主機相應目錄
[root@centos001 ~]# mkdir /data/wwroot/ [root@centos001 ~]# mkdir /data/wwroot/abc.com [root@centos001 ~]# mkdir /data/wwroot/111.com
4.在相應目錄建立PHP文件
[root@centos001 ~]# vim /data/wwroot/abc.com/index.php #文件內容以下 <?php echo "abc.com"; #另外一個虛擬機的 [root@centos001 ~]# vim /data/wwroot/111.com/index.php <?php echo "111.com"; #檢查讀寫 [root@centos001 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK #重啓服務 [root@centos001 ~]# /usr/local/apache2.4/bin/apachectl graceful
1.若是不在虛擬機中進行本地域名配置(hosts),在進行ping命令測試虛擬主機域名時會訪問到外網
[root@centos001 ~]# ping abc.com PING abc.com (199.181.132.250) 56(84) bytes of data. 64 bytes from 199.181.132.250 (199.181.132.250): icmp_seq=1 ttl=128 time=252 ms
2.curl -x命令
curl -x 指定訪問端口
此時訪問全部未定義的域名都會將訪問地址指向到默認虛擬主機,由於已經自定義添加了虛擬主機,因此此時的默認虛擬主機爲配置文件「httpd-vhosts.conf」中的第一個虛擬主機(在此爲abc.com)
[root@centos001 ~]# curl -x192.168.10.120:80 abc.com abc.com[root@centos001 ~]# curl -x192.168.10.120:80 abcf.com abc.com[root@centos001 ~]# curl -x192.168.10.120:80 www.example.com 111.com[root@centos001 ~]# curl -x192.168.10.120:80 111.com