keyword: Apache 403 Forbidden
系統配置:
操作系統:Red Hat Linux 6.2
Webserver:Apache 3.1.1+jakarta-tomcat 3.1.1
數據庫server:oracle 8i
Apacheserver是目前應用最多的webserver,據統計在世界上的server中有超過一半采用Apacheserver.關於它的長處,您能夠自己到http://www.apache.org/上去看。
今天我們的server出了一點兒問題:任何訪問都會返回一個403的錯誤:
Forbidden
You don't have permission to access on this server。
不正確呀,原來還好好的,在排除了文件夾的權限等的問題外,我差點兒翻遍了系統的全部文件,尤其是/etc/httpd/conf下的全部配置文件,因為我已經將access.conf,srm.conf文件添加到httpd.conf文件中,同一時候在httpd.conf文件的最后加上了一句:
Include /etc/httpd/conf/tomcat.conf,以便將tomcat和apache連接起來。
在經過了一番思考之后,我認為問題肯定出在httpd.conf文件中,於是就又又一次檢查httpd.conf文件,終於讓我發現了當中有這樣一段:
<Files ~>
AllowOverride AuthConfig FileInfo Indexs Limit Options
Order allow ,deny
Deny from all-----------------注意:就是這兒!!--->把這行去掉或凝視掉就可以!!!
</Files>
心頭一陣狂喜,哈哈,想起趙本山說的一句話“小樣兒,脫了馬甲我也認得你”,於是改成:
Allow from all,重啟server,咦,還是不行?頭開始大了,心想:今兒個我是載這兒了。又翻了n多遍httpd.conf文件差點兒都要背下來了還找不到問題。也怪,突然就想起來了,www.apache.org不是有個問題數據庫嗎,差點兒全部的問題都能夠在上面找到答案,於是進入http://bugs.apache.org/,查找keywordforbidden,果然就讓我查到了,原來是我們一位同事想做一個虛擬主機,用了linux的配置工具linuxconf,這個工具因為版本號的問題,會導致httpd.conf文件的改動,事實上我僅僅要將上面的那一段去掉就能夠萬事大吉了。
終於總結經驗:遇到事情首先要想到到軟件所在的站點上找答案,免得浪費時間。
寫此文的目的:以我為反面教材,遇到問題不要自己總是認為自己能夠解決,而不到專業站點上請教。許多的站點已經有了很完好的faq,基本上能夠滿足大家平時的需求,比方pb的要多到www.sybase.com上走走,java到http://developer.java.sun.com上轉轉,vc到壞孩子家溜溜。事實上一些高手不是他們有多聰明,而是他們懂得如何從實用的地方找到自己想要的東西。
我也象他那樣找到了希望,也沒管用。后來我樂了,但后來我又樂不起來了。那着在我這里不行啊?誰能幫我?我找!我找!不行就自救。
===================================================
===================================================
解決Apache下403 Forbidden錯誤
正 文:
今天在公司電腦上安裝Apache,版本號2.2.8,裝完剛測試能夠;配置了下php的php.in文件再次localhost打開發現錯誤:HTTP 錯誤 403 - 禁止訪問,即403 Forbidden:You don't have permission to access / on this server.權限又不夠了?
立即打開apache的配置文件httpd.conf,逐行檢查。在大約快一半的地方有下面這段代碼:
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
發現了吧。因為配置了php后,這里的“Deny from all”已經拒絕了一切連接。把該行改成“allow from all”,改動后的代碼例如以下,問題解決。
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>
再次在瀏覽器里打開http://localhost,顯示it works!
總結:如果你也發生了這樣的403禁止訪問,最好還是注意下apache的httpd.conf配置文件里有“Deny from all”這行的代碼處,看看是不是哪里被系統悄悄地改動了。