項目部署到Apache Http Server上面,通過apachectl -t 檢測配置文件也沒有問題。可是通過浏覽器訪問,卻出現了“you don't have permission to access / on this server”.
1、首先,查看conf.d/python.conf文件
<Directory "項目路徑">
Options Indexes FollowSymLinks +Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
上面標紅部分,表示允許任何人訪問目錄
2、其次,既然配置文件沒有問題,那就需要考慮http.conf文件中指定的用戶和組的訪問權限。在Apache的wiki上有關於PermissionDenied的解決方法,鏈接是http://wiki.apache.org/httpd/13PermissionDenied,譯文如下:
Error 13 指的是文件系統的訪問權限錯誤。也就是由於錯誤的權限,apache被拒絕訪問。一般的來說,這並不意味著是Apache配置文件存在錯誤。
為了給文件提供服務,Apache必須有適當的權限去訪問那些文件,這些權限是由操作系統授予的。特別是在httpd.conf文件中指定User或者Group必須能夠讀取所有被服務的文件,以及查找包含那些文件的目錄和所有的父目錄直至文件系統的根。
一個類unix操作系統上不屬於httpd.conf文件中指定的User或Group的資源的典型訪問權限,對於普通的文件是644 -rw-r--r--,對於文件夾或者CGI腳本是755 drwxr-x-r-x。你也可能需要去查看操作系統所支持的擴展的訪問權限(例如SELinux訪問權限).
例子
當訪問類unix操作系統上的/usr/local/apache2/htdocs/foo/bar.htm文件時,你收到了Permission Denied的錯誤。
首先,查看文件的訪問權限:
$ cd /usr/local/apache2/htdocs/foo
$ ls -l bar.htm
如果須要的話,就修復它們:
$ chmod 644 bar.html
對文件夾以及每個父文件夾做相同的操作(/usr/local/apache2/htdocs/foo,/usr/local/apache2/htdocs,/usr/local/apache2,/usr/local/,/usr):
$ ls -la
$ chmod +x
$ cd ..
$ #repeat up to the root
在一些系統上,可使用工具namei來列出各個路徑上的不同組件的訪問權限,然後去發現是否有權限問題:
$ namei -m /usr/local/apache2/htdocs/foo/bar.html
3、最後,如果還是沒有解決問題,那麼需要查看擴展的訪問權限。
使用setenforce 0關閉SELinux,看是否解決問題。
我遇到的問題是http.conf文件中所指定的用戶沒有訪問項目所在目錄的權限。