Pat*_*ssy 5 apache django virtualhost python-2.7
我正在尝试在使用WSGI的虚拟主机中的Apache服务器上运行Django应用程序.
我完全按照Django文档进行操作,但这里似乎还有一些问题.
据我所知,我已经正确配置了所有内容.
wsgi.py:
import os
import sys
path='/var/www/docs/'
sys.path.append(path)
os.environ["DJANGO_SETTINGS_MODULE"] = "DocsEngine.settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)
虚拟主机文件:
Listen 8000
WSGIPythonPath /var/www/docs
<VirtualHost *:8000>
WSGIScriptAlias / /var/www/docs/DocsEngine/wsgi.py
ServerName myurl.com
Alias /resources/ /var/www/docs/resources/
<Directory /var/www/docs/DocsEngine>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
CustomLog /var/log/apache2/wsgi-access.log combined
ErrorLog /var/log/apache2/wsgi-error.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
导航到myurl.com:8000/它时会出现404页面.
我能够访问位于我的/resources目录中的东西,所以我知道apache可以识别其中的一部分.
几个小时以来,我一直在敲打我的头,任何帮助都会非常感激.
经过大约14个小时的Google-fu和很多失败,我终于找到了解决方案.显然,他们在Django 1.7和Apache 2.4中都做了无证的重大改变.
首先,我需要禁用mod_pythonApache.显然,当启用WSGI时,它会导致静默问题.一旦我禁用它,我的日志开始爆炸,感谢上帝.以下是我发现此解决方案的链接:http://marc-abramowitz.com/archives/2012/09/28/some-tips-for-setting-up-apache-and-mod_wsgi/
鉴于从禁用中发现的错误mod_python,我发现Django的WSGI.py文件需要以这种方式初始化,与文档中描述的不同:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)
https://www.pythonanywhere.com/forums/topic/1629/#id_post_11030
希望这可以帮助将来遇到这个问题的可怜的灵魂.