试图运行python django网站,但Mod_wsgi无效

时间:2013-06-11 15:55:55

标签: python django apache apache2 mod-wsgi

我正在尝试使用linux上的apache2和mod_wsgi来运行pyhton django项目。

它似乎没有运行任何python代码。当我在浏览器中输入网站的url(我的服务器上的mysite.com)时,页面会加载它应该的模板文件,但是,任何python都会显示为常规文本,静态文件也不会加载。

要检查mod_wsgi是否已启用,我在终端中输入了a2enmod,并说它已启用Module wsgi。此外,这是一个在开发服务器上运行良好的现有项目。

我正在关注https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/上的教程 所以我在启动项目时将下面的代码添加到httpd.conf文件中。

<IfModule wsgi_module>
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
WSGIPythonPath /var/www/mysite

Alias /static/ /var/www/mysite/signup/static/signup

<Directory /var/www/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

<Directory /var/www/mysite/mysite/template>
DirectoryIndex integrate.html
Options Indexes FollowSymLinks

</Directory>


WSGIDaemonProcess mysite.com python-path=/var/www/mysite:/usr/local/lib/python2.7/dist-packages
WSGIProcessGroup mysite.com
</IfModule>

2 个答案:

答案 0 :(得分:1)

有一点是错误的:

Alias /static/ /var/www/mysite/signup/static/signup

应该是:

Alias /static /var/www/mysite/signup/static/signup

或:

Alias /static/ /var/www/mysite/signup/static/signup/

对于子URL,必须平衡使用尾部斜杠。也就是说,两者都显示在两者上或不同时显示。

您还缺少目录'/ var / www / mysite / signup / static'的目录块,以告诉Apache它可以访问该目录中的文件。

我不明白为什么你把它映射到'signup'子目录。为什么不将它映射到'静态'目录?你可能也有一些不稳定的东西。

最后,如果您看到Python源代码,那么听起来有点像您将Django网站放在DocumentRoot下,这是完全错误的,然后上面的内容没有被使用。但是,由于你没有很好地解释它,问题是什么并不完全明显。你没有真正遵循Django文档所做的事情没有帮助。我建议你再去阅读一下文档。

答案 1 :(得分:0)

如果您正在使用WSGIDaemonProcess和WSGIProcessGroup(我总是先放),请删除 WSGIPythonPath /var/www/mysite

我也没有<IfModule wsgi_module>DirectoryIndex(这应该由你的URLConf覆盖)

您使用的是模板吗?不知道为什么你会看到原始的python。