記一次幫朋友解決apache站點403錯誤的過程


apache版本:

[root@iZ25eby2utyZ web]# rpm -qa | grep httpd
httpd-tools-2.2.15-47.el6.centos.3.x86_64
httpd-2.2.15-47.el6.centos.3.x86_64

先說最終解決辦法吧:

1.將/etc/httpd/conf/目錄下的httpd.conf文件里面的ServerName改成你的服務器公網IP,但是阿里雲的不同,需要用內網IP。本文所講的的公網IP實際上就是阿里雲的內網IP。因為這哥們用的就是阿里雲的主機。

2.將/etc/httpd/conf.d/目錄下的virtual.conf文件里面的具體服務器IP改為*號

解決過程:

1、apache啟動時發現報錯:

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using [服務器公網IP] for ServerName

意思是給配置文件/etc/httpd/conf/httpd.conf里的ServerName指定具體的IP,於是指定了IP,如下:

ServerName [服務器公網IP]:80

2、這個時候啟動成功,訪問站點,出來的是apache的測試頁面,titile為:Apache HTTP Server Test Page powered by CentOS。而且報的是403錯誤,於是在網上找資料,有篇文章說是虛擬機配置錯誤,於是在httpd.conf文件里面添加了虛擬機的配置(我的哥們是單獨放在一個virtual.conf文件里面的,第四點會有說明),如下:

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
     DocumentRoot /www/docs/dummy-host.example.com
     ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

將DocumentRoot和ServerName改為具體的站點目錄和域名,然后重新啟動,在瀏覽器中訪問,OK。可以正常訪問了。

參考網址:https://www.cnblogs.com/wajika/p/6481167.html,里面的第三點。

注意:<VirsualHost>里面要寫成*號,不能使用具體的IP。

3、但是這哥們一台服務器上放了好幾個站點啊,於是我依樣畫葫蘆,先拷貝了一份<VirtualHost>,抱着試試看的心態看是否OK,然后重啟apache,結果新的問題又產生了:

Starting httpd: [Sat Jul 07 23:19:47 2018] [warn] _default_ VirtualHost overlap on port 80, the first has precedence.

這句話的意思是80端口重疊,第一個虛擬機優先,訪問第二個虛擬機的時候,實際上就指向了第一個虛擬機。說白了,兩個域名都指向第一個虛擬機配置的站點。於是在網上找資料,這篇文章有講到解決辦法:https://www.cnblogs.com/xyh592/p/5762729.html

需要將#NameVirtualHost *:80取消注釋,如下:

NameVirtualHost *:80

apache重啟后兩個站點都可以訪問了。

4、這哥們單獨將虛擬機配置放在了一個文件里面,在httpd.conf文件里面可以看到:Include conf.d/*.conf。它的作用是apache啟動時會自動掃描conf.d目錄下的所有后綴名為.conf的文件,然后加載。於是找到這個文件/etc/httpd/conf.d/virtual.conf。此時此刻,我突然間想到第二步和第三步不用做,只保留第一點的改動(即將ServerName改成公網IP),同時將virtual.conf文件里的IP換成*號應該是可以的。於是試了一把,並重啟apache,所有站點都可以訪問了。

最終完美解決問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM