Apache和mod_wsgi WSGIDaemonProcess配置错误

时间:2014-12-22 09:17:36

标签: django apache permissions mod-wsgi ubuntu-14.04

我在使用apache(Apache / 2.4.7(Ubuntu 14.04))和mod_wsgi以及我的django站点时遇到了很多困难。我的配置已经工作了很长时间,然后我不确定我做了什么(可能是因为我移动了virtualenv,并没有在配置中准确反映这一点,或者可能只是服务器升级,我不确定),但现在我得到像

这样的错误
#/var/log/apache2/error.log
[Mon Dec 22 08:47:04.693620 2014] [:info] [pid 21082:tid 139779033159552] mod_wsgi (pid=21082): Starting process 'mysite.com' with uid=999, gid=999 and threads=4.
[Mon Dec 22 08:47:04.693744 2014] [:alert] [pid 21084:tid 139779033159552] (2)No such file or directory: mod_wsgi (pid=21084): Unable to change working directory to '/home/djangoUser'.
[Mon Dec 22 08:47:04.693769 2014] [:alert] [pid 21084:tid 139779033159552] mod_wsgi (pid=21084): Failure to configure the daemon process correctly and process left in unspecified state. Restarting daemon process after delay.

#/srv/apache/log/mysite_error.log
[Mon Dec 22 08:49:31.295810 2014] [core:error] [pid 13999:tid 139778670376704] [client 1.169.91.80:2836] Script timed out before returning headers: mysite.com_wsgi.py

我尝试重新安装并重新启用mod_wsgi

sudo aptitude install libapache2-mod-wsgi
a2enmod wsgi
service apache2 restart

这没有帮助。

我的django的wsgi文件如下:

#/srv/apache/mysite.com_wsgi.py  (perms are www-data.www-data 644 on file, 755 dir above)
#!/usr/bin/env python

settings_module = "settings"
os.environ["DJANGO_SETTINGS_MODULE"] = settings_module

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

和我的apache conf看起来像:

#/etc/apache2/sites-enabled/mysite.com.conf:

<VirtualHost *:80>

    # Admin email, Server Name (domain name), and any aliases
    ServerAdmin me@gmail.com
    ServerName  www.mysite.com
    ServerAlias mysite.com


    WSGIScriptAlias / /srv/apache/mysite.com_wsgi.py

    # Log file locations
    LogLevel info
    ErrorLog  /srv/apache/log/mysite.com_error.log
    CustomLog /srv/apache/log/mysite.com_access.log combined


    WSGIDaemonProcess mysite.com processes=4 threads=4 display-name=%{GROUP}  user=djangoUser group=djangoUser python-path=/srv/mysite:/srv/mysite/venv/lib/python2.7/site-packages
    WSGIProcessGroup: mysite.com



    <Directory "/srv/apache">
    Require all granted
    </Directory>     


   <Directory "/srv/www/mysite.com/media">
     Require all granted
    </Directory>

    <Directory "/srv/www/mysite.com/static">
    Require all granted
    </Directory>


</VirtualHost>

一些目录结构说明:

django站点文件位于/srv/mysite,即djangoUser.djangoUser 755(以下所有文件/目录也由djangoUser拥有)。虚拟环境位于/srv/mysite/venv,并且再次由djangoUser拥有,并且pip install提供了相同的perms。 /srv/mysite/内的其他文件也由djangoUser拥有,其中dir为500,文件为400。

wsgi文件位于/srv/apache,它和apache目录是www-data.www-data,其中wsgi文件为644,目录为755以上。

静态文件位于/srv/www/mysite.com/static,其中包含www-data所拥有的所有内容,以及dir .....我实际上可以毫无问题地访问favico或robots文件... www.mysite.com/favicon .ico显示它没有错误。

有没有人有任何想法可能是什么问题?我一开始认为它必须是权限,但我看不出任何问题。

最后/ etc / passwd将djangoUser显示为

djangoUser:x:999:999::/home/djangoUser:/bin/false

0 个答案:

没有答案