我尝试将WSGIDaemonProcess用户设置为root。然后我收到错误日志,如下所示
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105] [Errno 13] Permission denied: '/var/www'
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105]
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105] The Python egg cache directory is currently set to:
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105]
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105] /var/www/.python-eggs
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105]
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105] Perhaps your account does not have write access to this directory? You can
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105] change the cache directory by setting the PYTHON_EGG_CACHE environment
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105] variable to point to an accessible directory.
[Fri May 02 04:48:47 2014] [error] [client 103.6.158.105]
我的Django应用程序位于/ home / user / app /
内任何人都可以帮助以root身份运行WSGI守护程序进程。 感谢。
答案 0 :(得分:2)
您无法使Apache子工作进程或mod_wsgi守护程序进程以root身份运行。对代码有故意的内置保护,以防止你这样做,并且尝试这样做会导致错误,Apache将无法启动。
如果您真的想要设置' user = root'到WSGIDaemonProcess并且没有看到错误消息:
WSGI process blocked from running as root.
如果Apache没有启动,那么这只能意味着整个Apache父进程从未以root用户身份启动,而不是因为对代码执行的根限制而对它有所帮助。
相反,您的Apache实例正在以用户“bangtest”的形式启动,这意味着在任何时候Apache都无法将所有者更改为root权限,即使您攻击了Apache和mod_wsgi代码,以明确删除保护您自己不会产生巨大安全问题的限制。
简而言之,您确实不希望以root身份运行任何Web应用程序,因为这是一个等待发生的巨大安全问题。
BTW,忽略了以root身份运行的这种不明智的愿望,mod_wsgi文档中清楚地记录了你对Python egg缓存的实际问题。答案 1 :(得分:0)
我在debian服务器上遇到了同样的问题所以我通过设置user = www-data和group = www-data
解决了这个问题www-data user在/ root文件夹中没有权限