SELinux的原因是該問題.....
TException:錯誤:TSocket:無法連接到localhost:9160(Permission denied [13]) 要解決這個問題,你需要改變一個SELinux布爾值(它會在重新啓動時自動存在)。您可能還想重新啓動httpd以重置代理工作器,但這不是嚴格要求。
setsebool -P httpd_can_network_connect 1
或
(13)拒絕權限
錯誤13表示一個文件系統權限問題。也就是說,由於權限不正確,Apache被拒絕訪問文件或目錄。通常,這並不意味着Apache配置文件存在問題。
爲了提供文件,Apache必須具有操作系統授予的適當權限來訪問這些文件。特別是,httpd.conf中指定的用戶或組必須能夠讀取將要提供的所有文件,並搜索包含這些文件的目錄以及直至文件系統根目錄的所有父目錄。
對於不屬於在httpd.conf中指定的用戶或組的資源,類Unix系統的典型權限爲普通文件爲644 -rw-r-r--目錄或CGI爲755 drwxr-xrx腳本。您可能還需要在支持它們的操作系統上檢查擴展權限(例如SELinux權限)。
一個例子
比方說,你訪問一個類Unix系統上的文件/usr/local/apache2/htdocs/foo/bar.html時收到Permission denied錯誤。
首先檢查該文件上的現有權限:
CD的/ usr /本地/ Apache2的/ htdocs中/富 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 ..
重複直到根
在某些系統上,該實用程序那枚可以用來幫助通過列出的權限,沿路徑的每個組件找到權限問題:
對蝦-m在/ usr /本地/apache2/htdocs/foo/bar.html
如果所有標準權限都正確,並且仍然收到權限被拒絕錯誤,則應檢查擴展權限。例如,您可以使用setenforce 0命令關閉SELinux並檢查問題是否消失。如果是這樣,ls -alZ可以用來查看SELinux權限和chcon來修復它們。
在極少數情況下,這可能是由其他問題引起的,例如apache2.conf文件中其他位置的文件權限問題。例如,WSGIScriptAlias指令不映射到實際文件。錯誤消息可能不準確,哪些文件不可讀。
即使「只是測試服務器」,也不要將文件或目錄設置爲模式777,即使是「僅測試」。測試服務器的目的是在安全的環境中正確地做事,而不是爲了避免做錯事。它會告訴你的是如果問題出在實際存在的文件上。
應該去serverfault。 – 2009-08-04 03:21:58
直到你提到它才知道= =)我想我會試試看。爲什麼他們保留兩個(也許更多?)網站呢?集中這些類別不是更好嗎? – Dave 2009-08-04 03:50:02
@Dave:stackoverflow.com用於編程問題; serverfault.com用於sysadmin/server問題; superuser.com是針對一般「高級用戶」和其他與計算機有關的其他問題。我想,幫助人們專注於他們的專業領域。 – Josh 2009-08-04 13:47:52