使用apache2和mod_wsgi部署一个Django站点

我一直在试图教自己创build和部署Django应用程序。 我创build了一个testing项目,我可以使用Djangotesting服务器浏览它。 现在我想用apache和mod_wsgi来部署它。

我按照“ 快速安装指南”中的安装说明安装了mod_wsgi。 然后,我查看了“ 快速configuration指南”中的示例,并能够成功连接到浏览器中的示例输出。

我现在已经转向与Django集成( http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango )部分,我无法取得任何进展。 任何时候,我尝试浏览到我为我的项目设置的URL,而是使用configuration指南创build的示例输出。 我已经看了Apache的错误日志,并没有消息(当我debugging第一个例子时,我得到了一些,所以我知道我正在查看正确的日志)。 我甚至设置了“LogLevel info”来尝试获取日志中的更多细节,但是没有。

有没有人有什么build议?

这里是我的apach2.conf:

LockFile ${APACHE_LOCK_DIR}/accept.lock PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_event_module> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy all </Files> DefaultType text/plain HostnameLookups Off [3]: ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn Include mods-enabled/*.load Include mods-enabled/*.conf Include httpd.conf Include ports.conf LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent Include conf.d/ Include sites-enabled/ 

这是我的httpd.conf:

 ServerName HomeServer LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so 

这是VitualHost:

 <VirtualHost *:80> ServerName ppbase.homeserver ServerAdmin [email protected] DocumentRoot /var/projects/ppbase/ppbase <Directory /var/projects/ppbase/ppbase> Order allow,deny Allow from all </Directory> LogLevel info WSGIScriptAlias / /var/projects/ppbase/django.wsgi <Directory /var/projects/ppbase> Order allow,deny Allow from all </Directory> </VirtualHost> 

这里是django.wsgi:

 import os import sys projectpath = '/var/projects/ppbase' projectapppath = '/var/projects/ppbase/ppbase' if projectpath not in sys.path: sys.path.append(projectpath) if projectapppath not in sys.path: sys.path.append(projectapppath) os.environ['DJANGO_SETTINGS_MODULE'] = 'ppbase.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() 

确保在apache中启用你的虚拟主机文件。