我正在尝试使用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>
答案 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。