Apache修改根目錄沒有訪問許可權問題的解決
關鍵錯誤:You don't have permission to access / on this server
其實我也不是很清楚,這樣修改會出現什麼問題!
所以如果是本地除錯的話,可以使用,而應用於伺服器的話,請慎重!否則出現安全問題,本人概不負責!
今天因為要修改 Apache 的預設根目錄,是從FAT32邏輯分割槽的預設資料夾 調到 NTFS邏輯分割槽的某個資料夾!
我先將
DocumentRoot "預設目錄" -> DocumentRoot "目標目錄"
開啟網頁,結果訪問提示:403錯誤!關閉了IE的"顯示友好的HTTP錯誤",顯示沒有許可權訪問(You don't have permission to access / on this server
我想著大概是沒有許可權去訪問該目錄,因為一般情況下,NTFS對訪問許可權控制的很嚴格的!
於是開啟目錄,一看,訪問許可權居然是everyone的完全控制!那使用者在資料夾訪問許可權上是絕對沒有問題了!肯定是apache的配置問題了,於是上網搜尋,找到如下相關資訊,用於修改許可權.
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>
根據配置檔案提示,此設定是用於修改Apache對所有目錄的訪問許可權的,如果任意修改,可能會帶來安全隱患的!那我們來看看到底是什麼在作祟,讓我們無法訪問網頁的吧!
Deny from all
將Deny改為Allow試試!(因為可能會存在大小寫敏感的問題,所以推薦用首字母大寫,有興趣的可以自己嘗試小寫!)一下通過了,但是這樣配置的話伺服器安全性會...
於是我繼續往下看配置檔案!
發現了以下內容
#
# This should be changed to whatever you set DocumentRoot to.
#
以上這行註釋的意思:無論你的伺服器根目錄設定為什麼,你都必須保證此處配置保持一致!
<Directory "預設目錄">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI
MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options
All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please
see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess
files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
再將以上的"預設目錄"設定為"目標目錄",(當然已經將對所有許可權訪問的設定修改為拒絕了!)重新整理一下頁面,OK,通過了!