2011-12-20 62 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

相关问题