发布通过 WSGI 将 Django 项目部署到 Apache
Issue deploying Django project to Apache via WSGI
Ubuntu 14.04.4 和
Django 1.10
我正在尝试通过 WSGI 将一个简单的 Django 应用程序部署到 Apache,该应用程序在开发中可以完美运行。我的 Apache 配置文件中的相关位:
<VirtualHost [my IP]>
WSGIScriptAlias /Django/MedFormUpdates /home/web/inside/django/MedFormUpdates/MedFormUpdates/wsgi.py
WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
WSGIPythonPath /home/web/inside/django/MedFormUpdates/MedFormUpdates
<Directory "/home/web/inside/django/MedFormUpdates/MedFormUpdates">
Options ExecCGI
<Files wsgi.py>
Require all granted
</Files>
</Directory>
在我的 wsgi.py 文件中:
import os, sys
from django.core.wsgi import get_wsgi_application
sys.path.append('/home/web/inside/django')
sys.path.append('/home/web/inside/django/MedFormUpdates')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MedFormUpdates.settings")
application = get_wsgi_application()
在我的 settings.py 中:
WSGI_APPLICATION = 'MedFormUpdates.wsgi.application'
当我尝试加载页面时,我得到“很抱歉,网络服务器出现内部错误。”- Apache 日志显示
End of script output before headers: wsgi.py
我浏览了所有我能找到的 Django/WSGI/Apache 话题,这让我抓狂。任何见解表示赞赏。谢谢
如果没有关于
的更多信息,这个问题是不可能回答的
- 你的剩余筹码;
- 你的 django 项目有哪些依赖项;
- 您安装了哪些Python个版本;
- 您如何安装 Python 和 Apache;
- 你好运行阿帕奇
事实证明,我们在目录 /etc/apache2/conf-enabled 中还有另一个 Apache 配置文件,它具有以下设置,它将 Python 脚本(以及 Perl 和 CGI)绑定到 CGI:
AddHandler cgi-script .cgi .pl .py
这对于我们在生产中拥有的许多其他东西来说是必要的。为了将我的项目排除在外,我在我的 Apache 配置文件中删除了
Options ExecGI
改为
RemoveHandler .py
现在页面显示正常。
Ubuntu 14.04.4 和 Django 1.10
我正在尝试通过 WSGI 将一个简单的 Django 应用程序部署到 Apache,该应用程序在开发中可以完美运行。我的 Apache 配置文件中的相关位:
<VirtualHost [my IP]>
WSGIScriptAlias /Django/MedFormUpdates /home/web/inside/django/MedFormUpdates/MedFormUpdates/wsgi.py
WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
WSGIPythonPath /home/web/inside/django/MedFormUpdates/MedFormUpdates
<Directory "/home/web/inside/django/MedFormUpdates/MedFormUpdates">
Options ExecCGI
<Files wsgi.py>
Require all granted
</Files>
</Directory>
在我的 wsgi.py 文件中:
import os, sys
from django.core.wsgi import get_wsgi_application
sys.path.append('/home/web/inside/django')
sys.path.append('/home/web/inside/django/MedFormUpdates')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MedFormUpdates.settings")
application = get_wsgi_application()
在我的 settings.py 中:
WSGI_APPLICATION = 'MedFormUpdates.wsgi.application'
当我尝试加载页面时,我得到“很抱歉,网络服务器出现内部错误。”- Apache 日志显示
End of script output before headers: wsgi.py
我浏览了所有我能找到的 Django/WSGI/Apache 话题,这让我抓狂。任何见解表示赞赏。谢谢
如果没有关于
的更多信息,这个问题是不可能回答的- 你的剩余筹码;
- 你的 django 项目有哪些依赖项;
- 您安装了哪些Python个版本;
- 您如何安装 Python 和 Apache;
- 你好运行阿帕奇
事实证明,我们在目录 /etc/apache2/conf-enabled 中还有另一个 Apache 配置文件,它具有以下设置,它将 Python 脚本(以及 Perl 和 CGI)绑定到 CGI:
AddHandler cgi-script .cgi .pl .py
这对于我们在生产中拥有的许多其他东西来说是必要的。为了将我的项目排除在外,我在我的 Apache 配置文件中删除了
Options ExecGI
改为
RemoveHandler .py
现在页面显示正常。