[英]Installing mod_wsgi on WAMP server running on Windows 7
我从以下位置为 apache 2.2 和 python 2.7(64 位)下载了 mod_wsgi。 (我试图让 django 在我的电脑上运行)。
每当我添加以下行时:
LoadModule wsgi_module modules/mod_wsgi.so
Apache 无法启动。 谁能告诉我可能是什么问题?
这些是为 Django 设置 Apache 需要做的以下事情。 我假设您在安装了 WAMP 服务器( 32位)的 Windows( 32位)上使用 Python 2.7(32位)。
下载mod_wsgi-win32-ap22py27-3.3.so。 或者下载你各自的.so兼容文件
在 Windows 上将其名称更改为mod_wsgi.so
并将其复制到/Program Files/Apache Software Foundation/Apache22/modules
。
使用管理员权限打开httpd.conf
。 现在,您将找到带有LoadModule...
的行列表。 只需将LoadModule wsgi_module modules/mod_wsgi.so
添加到该列表。
您已部分完成。您可以重新启动 apache,应该不会发现任何错误。
现在您需要将它链接到您的 Django 项目。
在您的 Django 项目根文件夹中,添加apache
文件夹并创建django.wsgi
(不要更改此名称)和apache_mydjango.conf
。
在httpd.conf
中,在页面底部添加以下行。
Include "d:/projects/mysite/apache_django_wsgi.conf"
打开django.wsgi
并添加以下行:
import os, sys
sys.path.append('d:/projects/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
打开apache_djang_wsgi.conf
并添加:
Alias /images/ "d:/projects/mysite/templates/images/"
<Directory "d:/projects/mysite/images>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / "d:/projects/mysite/apache/django.wsgi"
<Directory "d:/projects/mysite/apache">
Allow from all
</Directory>
<VirtualHost *:80>
DocumentRoot d:/projects/mysite
ServerName 127.0.0.1
</VirtualHost>
笔记:
我假设你的 Django 项目层次结构是这样的:
mysite/
mysite/
settings.py
urls.py, wsgi.py.
manage.py
<apache> / apache_django_wsgi.conf, django.wsgi
最佳教程链接:
其实我不明白为什么人们无法修复它。 我在这里看到了很多关于它的问题,我什至发布了一些......所以,我想直接写一个初始设置版本作为答案
尝试以下网站获取 python 扩展的非官方 Windows 二进制文件http://www.kaij.org/blog/?p=123 https://github.com/kirang89/pycrumbs/pull/28
以防万一有人在使用它但没有发现它,步骤中存在不一致。 在第 5 步中,它引用文件名apache_mydjango.conf
在第 6 步中,它引用文件名apache_django_wsgi.conf
显然,它们应该是同一个名字——不管你选择哪一种方式——但我花了一段时间试图弄清楚为什么它不起作用。
除了Olly的更正之外,Step6中还有一个错误:Instead of
Include "d:/projects/mysite/apache_django_wsgi.conf"
它应该是
Include "d:/projects/mysite/apache/apache_django_wsgi.conf"
我完成了所有步骤,但现在无法再启动 Apache Server。 Wamp 图像是红色的。 我可以按照步骤 3 中的描述重新启动 Apache。
我如何配置 Apache + Django + venv
为了让它工作,你需要三样东西:
mod_wsgi
httpd.conf
mod_wsgi
加载的 python 脚本(通常是 wsgi.py),然后加载你的 python 应用程序 1.官方文档描述的很清楚(我用的是pip方式)。 只需将 apache 发行版(ApacheHaus 为我工作,但不是Apache Lounge,我认为它错过了一些标头)解压到C:\
之类的标准位置,或将 env var MOD_WSGI_APACHE_ROOTDIR
设置为其目录。 您将需要 Visual Studio 构建工具或mod_wsgi 的二进制分发版。 然后pip install
。
2 、在httpd.conf中添加:
LoadFile ".../pythonXY/pythonXY.dll"
LoadModule wsgi_module ".../mod_wsgi/server/mod_wsgi.cpXY-win_amd64.pyd"
WSGIPythonHome ".../pythonXY"
WSGIScriptAlias / "...\wsgi.py"
如果未以标准方式安装 Python,则此处可能需要LoadFile
。 最好包括在内。 WSGIPythonHome
指令应该指向主要的 python 发行版(不是通常所说的venv ),因为mod_wsgi可能有点无法正常工作。 例如现在WSGIPythonPath
什么都不做。 或者,您可以相应地设置 PYTHONPATH 或 PYTHONHOME 环境变量。
现在您可以监视 apache 的错误日志(默认情况下在其日志文件夹中)。 如果失败,apache 将打印 mod_wsgi 配置(意味着它已安装,但无法启动 python)和/或 python 错误(如果它设法启动)。
3.在你的 python 脚本 ( wsgy.py
) 中,你需要提供启动你的应用程序的函数“应用程序” (通常编译mod_wsgi
也是如此)。 但首先将 python 指向它将使用的模块和包,您自己的也一样,就在脚本中使用sys.path
或site.addsitedir
。 Django 的 wsgi.py 很好,只需在其中添加所有路径 conf。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.