Django mod_wsgi Apache [英] Django mod_wsgi apache

查看:113
本文介绍了Django mod_wsgi Apache的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试访问 http://www.satoshi.example.com/mysite的Django网站时, 我得到一个503 Service Temporary Unavailable.

When I try to visit my Django site at http://www.satoshi.example.com/mysite I get a 503 Service Temporary Unavailable.

Apache错误日志显示

The Apache error log says

[Tue Feb 28 07:11:09 2012] [error] [client 10.0.0.202] (13)Permission denied: mod_wsgi (pid=4756): Unable to connect to WSGI daemon process 'django' on '/etc/httpd/logs/wsgi.17555.4.1.sock' after multiple attempts.

Apache正确加载mod_wsgi

Apache properly loads mod_wsgi

root@satoshi:~/html/mysite# apachectl -M | grep wsgi
 wsgi_module (shared)
Syntax OK

Apache加载的/var/www/html/mysite/apache/apache_django_wsgi.conf

Apache loads /var/www/html/mysite/apache/apache_django_wsgi.conf which is

WSGIDaemonProcess django
WSGIProcessGroup django

<Directory "/var/www/html/mysite">
Order allow,deny
Options Indexes
Allow from all 
IndexOptions FancyIndexing
</Directory>

WSGIScriptAlias /mysite "/var/www/html/mysite/apache/django.wsgi"

<Directory "/var/www/html/mysite/apache">
Order deny,allow
Allow from all 
</Directory>

这是/var/www/html/mysite/apache/django.wsgi

import os
import sys 

paths = [ '/var/www/html/mysite',
          '/usr/lib/python2.6/site-packages/',
]

for path in paths:
    if path not in sys.path:
        sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

一个奇怪的事情是我发现我什至不需要自己的httpd.conf.我认为我的httpd.conf是已经加载mod_wsgi的另一个配置的扩展.不确定这是否重要.

One weird thing is that I found out I don't even need to LoadModule wsgi_module modules/mod_wsgi.so on my own httpd.conf. I think my httpd.conf is an extension of another configuration that already loaded mod_wsgi. Not sure if this matters.

到目前为止,我提供的内容有什么问题吗?如果您需要更多信息,请与我们联系.预先感谢!

Is there anything wrong with what I provided so far? Let me know if you need more information. Thanks in advance!

================================================ ======

=====================================================

@jpic请求的信息

Information requested by @jpic

root@satoshi:/var/www/html# ps aux | grep apache
root      4564  0.0  0.2 207636  5432 pts/9    S+   04:16   0:00 vi apache_django_wsgi.conf
apache    6006  0.0  0.7 365140 14820 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6007  0.0  0.7 365140 14884 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6008  0.0  0.7 365140 14888 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6009  0.0  0.7 365140 14884 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6010  0.0  0.7 365008 14784 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6011  0.0  0.7 365008 14768 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6012  0.0  0.7 365008 14748 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6013  0.0  0.7 365140 14876 ?        S    09:53   0:00 /usr/sbin/httpd
apache    6112  0.0  0.7 365008 14756 ?        S    10:05   0:00 /usr/sbin/httpd
root      6116  0.0  0.2 207700  5492 pts/15   S+   10:06   0:00 vi ../apache/django.wsgi
apache    6181  0.0  1.5 713972 32136 ?        Sl   10:08   0:00 /usr/sbin/httpd
root      8173  0.0  0.0 103300   848 pts/17   S+   23:39   0:00 grep --color=auto apache

用户信息(您是说id吗?userid没找到)

User information (Did you mean id? userid was not found)

root@satoshi:/var/www/html# id apache
uid=48(apache) gid=48(apache) groups=48(apache)

ls -la信息

root@satoshi:/var/www/html# ls -la /etc/ | grep httpd
drwxrwxr-x.   4 root 4.0K Feb 16 18:27 httpd/

root@satoshi:/var/www/html# ls -la /etc/httpd/
total 24K
drwxrwxr-x.   4 root 4.0K Feb 16 18:27 ./
drwxr-xr-x. 128 root  12K Feb 28 03:45 ../
drwxr-xr-x.   2 root 4.0K Feb 28 08:07 conf/
drwxr-xr-x.   2 root 4.0K Feb 16 18:28 conf.d/
lrwxrwxrwx    1 root   19 Feb 16 18:27 logs -> ../../var/log/httpd/
lrwxrwxrwx    1 root   29 Feb 16 18:27 modules -> ../../usr/lib64/httpd/modules/
lrwxrwxrwx    1 root   19 Feb 16 18:27 run -> ../../var/run/httpd/

root@satoshi:/var/www/html# ls -la /etc/httpd/logs/
total 528K
drwxrwxr-x.  2 root   4.0K Feb 28 09:53 ./
drwxr-xr-x. 19 root   4.0K Feb 27 06:51 ../
-rw-r--r--   1 root    17K Feb 28 10:08 access_log
-rw-r--r--   1 root    351 Feb  3 10:24 access_log-20120205
-rw-r--r--   1 root   1.8K Feb  7 01:39 access_log-20120212
-rw-r--r--   1 root   278K Feb 18 23:17 access_log-20120219
-rw-r--r--   1 root    85K Feb 22 08:38 access_log-20120226
-rw-r--r--   1 root    50K Feb 28 10:08 error_log
-rw-r--r--   1 root    14K Feb  5 03:28 error_log-20120205
-rw-r--r--   1 root   2.2K Feb 12 03:14 error_log-20120212
-rw-r--r--   1 root   9.4K Feb 19 03:28 error_log-20120219
-rw-r--r--   1 root   4.0K Feb 26 03:20 error_log-20120226
-rw-r--r--.  1 root      0 Oct 14 15:14 ssl_access_log
-rw-r--r--   1 root   3.1K Feb 28 09:53 ssl_error_log
-rw-r--r--   1 root   1.4K Feb  3 03:25 ssl_error_log-20120205
-rw-r--r--   1 root    237 Feb  5 03:28 ssl_error_log-20120212
-rw-r--r--   1 root   1.2K Feb 17 01:52 ssl_error_log-20120219
-rw-r--r--   1 root    237 Feb 19 03:28 ssl_error_log-20120226
-rw-r--r--.  1 root      0 Oct 14 15:14 ssl_request_log
srw-rw-rw-   1 apache    0 Feb 28 09:53 wsgi.17555.14.1.sock

推荐答案

此问题记录在:

http://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets

其他人更改权限所提供的解决方案是错误的.

The solutions given by others of changing permissions are wrong.

正确的解决方案是将套接字文件的保存位置更改为Apache用户可以读取它们的位置.

The correct solution is to change where the socket files are kept to a location where Apache user can read them.

在保护日志目录的系统上,有时您会拥有一个系统,以便在您混淆这些权限时撤消这些权限.结果,任何更改都可能只是暂时的.

On systems which protect logs directory, they sometimes have a system in place to set back those permissions when you mess with them. As a result any change may only be temporary.

这篇关于Django mod_wsgi Apache的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆