2011-12-20 92 views
0

我有乾淨的CentOS 6.我只是通過yum install httpd mysql-server, python, mysql-python進行安裝。清潔安裝後的Trac。 TracError:IOError:[Errno 13] Permission denied

第一步

$ trac-admin /home/tracprojects/main2 initenv

Project name: Main
SQL Connect string: mysql://[email protected]:3306/trac (base exists, utf8, innoDB)

OK.

$ trac-admin /home/tracprojects/main2 deploy /var/www/html/

OK.


第二步

然後我將cgi-bin/trac.wsgi移動到我的/cgi-bin/服務器的別名文件夾中。 (mod_wsgi運行良好,而不是作爲守護進程,在wsgi腳本上測試過)。

然後我已經授予Apache用戶以前我創建的整個目錄的權限。並從Apache配置添加訪問。 (訂單允許-拒絕)。

但是,當我打開我的瀏覽器,訪問網址,我得到這個錯誤信息:

Internal Server Error 
TracError: IOError: [Errno 13] Permission denied: '/home/tracprojects/main2/VERSION' 

我做什麼了?

回答

1

您是否使用SElinux(默認啓用)?使用默認的SElinux,我相信Apache不能訪問/ home。您可以通過暫時禁用SElinux(以root身份「setenforce 0」)並可能重新啓動Apache來檢查。同時檢查/var/log/audit.log。

+0

如果你使用的是Fedora系統,你應該得到一個彈出窗口,告訴你這個問題併爲你提供幾個解決方案,包括允許Apache訪問主目錄。 但是,還要檢查文件的上下文:由於它是在不同的文件夾中創建的,然後移動,它的上下文可能與它現在所在的文件夾不匹配。 'ls -Z'顯示上下文,'restorecon'將上下文設置爲新位置的缺省值(或者'chcon'手動指定一個)。 CGI腳本默認需要:'chcon -t httpd_sys_script_exec_t(FILE)' – BRFennPocock 2011-12-20 16:24:23

+1

噢,漂亮的故障排除備忘單:http://centoshelp.org/security/selinux-common-commands-troubleshooting/ – BRFennPocock 2011-12-20 16:25:09

0

檢查'/ home/tracprojects'的權限等。Apache作爲特殊用戶運行,可能無法讀取目錄,讀取文件或寫入文件。

使用mod_wsgi守護進程模式並告訴mod_wsgi以可以訪問該位置的其他用戶身份運行進程可能會更好。即使這樣做,WSGI腳本文件目錄仍然至少需要Apache用戶可讀。

+1

我有問題:麻煩在SELinux安全政治。 我只是運行:'grep VERSION /var/log/audit/audit.log | audit2allow -M tracrule'並且它做到了。 – woozly 2011-12-21 06:30:24

相關問題