apache服務出現Forbidden 403問題的解決方法總結
在配置Linux的 Apache服務時,經常會遇到http403錯誤,我今天配置測試時也出現了,最后解決了,總結了一下。http 403錯誤是拒絕訪問的意思,有很多原因的。還有,這些問題在win平臺的Apache里一樣會發(fā)生!我按照經驗總結的主要有以下4種原因!
本人測試的環(huán)境 是:Scientific Linux 5.3(與RHEL和CentOS百分百兼容!),其它版本的Linux應該通用,沒測試。
1. 訪問的文檔權限不夠。要755以上權限。解決方法:用命令chmod 755 /var/www/ 或其他相應目錄。
2. SELinux或防火墻的原因。解決方法:先關閉SELinux和讓防火墻通過WWW服務。
3. 虛擬主機配置錯誤。例如我遇到過一次的:
httpd.conf里加載了虛擬主機的配置文件:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
而conf/extra/httpd-vhosts.conf并沒有配置好,而且虛擬主機功能暫時還沒有用,所以把Include conf/extra/httpd-vhosts.conf注釋掉,重啟apache后正常了。
解決方法:重新配置虛擬主機或暫時關閉。
4. DocumentRoot的設置。解決方法如下:
打開 apache的配置文件httpd.conf,找到這段代碼:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
有時候由于配置了php后,這里的“Deny from all”已經拒絕了一切連接。把該行改成“allow from all”,修改后的代碼如下,問題解決。
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
PS:我以前沒有寫技術日志的習慣,以后多與大家分享。
以下是其它網友的補充:
部署apache服務Forbidden 403問題小結
很多朋友和學生都問過我同樣的問題 訪問網站Forbidden 403 什么原因?一般頁面提示為:
Forbidden
You don't have permission to access / on this server.
http錯誤代碼403:
403 Forbidden 資源不可用。服務器理解客戶的請求,但拒絕處理它。通常由于服務器上文件或目錄的權限設置導致。
通常情況可能(但不限于此)的原因有:
原因1:apache配置文件中沒有對站點目錄的權限許可,這通常是在初始安裝apache后,更改了默認的apache站點目錄時所至(重要,常發(fā)生):
如將站點目錄更改為:/var/blog,則在apache配置文件中如果不加下面的配置 就會返回403錯誤。
<Directory "/var/blog">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
提示:生產環(huán)境上面的配置還需修改,見下文,此處僅就本文的主題講解。
原因2:站點目錄下無首頁文件(index文件),而apache的配置又禁止了目錄瀏覽,就會提示403錯誤,配置如下(偶爾發(fā)生):
a.站點目錄下無首頁文件(index文件):
[root@http-server blog]# pwd
/var/blog
[root@http-server blog]# ll
total 12
drwxr-xr-x 2 root root 4096 Jun 4 22:11 oldboy
-rw-r--r-- 1 root root 0 Jun 4 22:11 oldboy.html
提示:上面列出來的就是站點目錄/var/blog目錄下沒有預設 首頁DirectoryIndex index.html
b.apache的配置禁止目錄瀏覽的三種配置
第一種配置:
<Directory "/var/blog">
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
第二種配置:
<Directory "/var/blog">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
第三種配置:
<Directory "/var/blog">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
提示:第二種原因朋友們偶爾會朋友,但遇到問題最多的還是第一種原因。
========================================================
以上配置的詳細說明:
===========================
原因3:還是Directory權限問題(不常發(fā)生)
如下文:拒絕10.0.0.0/24整段訪問。這樣被拒絕的主機訪問就會出現403錯誤
<Directory "/var/blog">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
#Allow from all
Deny from 10.0.0.0/24
<Directory "/var/blog">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
#Allow from all
Allow from 10.0.0.116
#Deny from 10.0.0.0/24
</Directory>
原因4:站點目錄權限問題(不常發(fā)生)。
站點目錄需要apache的用戶有訪問權限,否則就會報403錯誤。
[root@http-server var]# pwd
/var
[root@http-server var]# chown -R root.root blog/
[root@http-server var]# chmod 700 blog
[root@http-server var]# ll -d blog/
drwx------ 3 root root 4096 Jun 4 22:11 blog/
本文為拋磚引玉 更多原因,期待你的答案。。