天天看點

linux apache http403,解決apache下http請求403 Forbidden錯誤

出現403 Forbidden報錯,一般兩種可能性

可能性一、DocumentRoot選項,忘記配置新目錄的通路權限

預設安裝成功參數設定:DocumentRoot /usr/local/www/data

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

1.1 問題一、重新指定web存放目錄,忘記修改Directory後面的路徑

例如 DocumentRoot /usr/local/www/data,忘記指定Directory項的路徑,造成通路所有目錄都出現403,必須同時指定directory "/usr/local/www/data"才行。

1.2 問題二

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

其中Deny from all已經拒絕了所有的請求連結。應該修改成allow from all

Options FollowSymLinks

AllowOverride None

Order deny,allow

allow from all

可能性二、

配置了VirtualHost,并且有某個VirtualHost的DocumentRoot不在全局的DocumentRoot目錄下。

解決:此時必須在全局中單獨增加對該項目的Directory項設定,否則所有通路該VirtualHost下的請求都會403

問題原因:主要是因為Apache2對權限和安全的更高要求,對分布在不通磁盤上的目錄檔案進行嚴格管理。

通常嘗試辦法:第一:看看是不是Directory配置錯了,好像一般不會是這個原因

第二:看看User Group指定的使用者有沒有權限通路那個目錄,否則用chown修改目錄的所有者

第三:看看是不是seLinux搞得鬼,一般沒事把selinux停了再重新開機linux,selinux的配置檔案在/etc/selinux/config,改成disable

第四:我把所有的都做了發現還是不行,那麼可能是apache是用root安裝的,把apache卸了用一個非root使用者重新安裝。