Python 安装mod_wsgi后XAMPP Apache不工作
你好。 我目前正在尝试使用XAMPP Apache在本地托管我的Django网站。我已经学习了好几本教程,但其中有一本是我的作品。我想知道你是否可以告诉我我错过了哪些步骤或做错了哪些步骤。以下是我的Django开发站点上安装的软件包的规格:Python 安装mod_wsgi后XAMPP Apache不工作,python,django,apache,xampp,mod-wsgi,Python,Django,Apache,Xampp,Mod Wsgi,你好。 我目前正在尝试使用XAMPP Apache在本地托管我的Django网站。我已经学习了好几本教程,但其中有一本是我的作品。我想知道你是否可以告诉我我错过了哪些步骤或做错了哪些步骤。以下是我的Django开发站点上安装的软件包的规格: Python=2.7.12,32位 Apache=2.4,32位 Visual C++版本9 操作系统:Windows 7 64位 以下是我遵循的程序: 从下载mod_wsgi。我尝试过[mod_wsgi-py26-vc9.so、mod_wsgi-p
- Python=2.7.12,32位
- Apache=2.4,32位
- 操作系统:Windows 7 64位
LoadModule wsgi_module modules/mod_wsgi.so
LoadModule mod_wsgi modules/mod_wsgi.so
但仍然有相同的结果。XAMPP不会显示任何错误,但即使在重新启动XAMPP和机器本身后也不会运行Apache。我还尝试以管理员权限运行该应用程序,但它仍然无法运行。除了Apache之外,其他XAMPP模块也在工作。我通过在下载二进制文件并构建自己的二进制文件解决了这个问题。为此,我需要解压缩下载的zip文件,打开win32文件夹并阅读README.rst以获取说明 摘自说明:
- Python2.6-VC9
- Python2.7-VC9
- Python3.3-VC10
- Python3.4-VC10
启动VisualC++命令提示符和:
- 导航回提取的mod_wsgi文件,找到适合Apache和Python组合的makefile(
)。如果您不确定您的Apache版本,请阅读本文或导航到localhost for WAMPap22py27-win32-VC9.mk
- 编辑.mk文件并为APACHE_ROOTDIR和PYTHON_ROOTDIR定义正确的路径。例如:
APACHE\u ROOTDIR=C:\xampp\APACHE
PYTHON\u ROOTDIR=C:\Python27
- 运行
nmake-f apXYpyXY winNN VC?.mk安装
。在每个选项中替换“XY” 正在使用的Apache和Python版本的示例。替换为“NN” 使用“32”或“64”并将“?”替换为“9”或“10”。示例:
。该行为您的平台构建mod_wsgi,并将其安装到Apache安装的modules目录中nmake-f ap22py27-win32-VC9.mk安装
- 在WAMP/XAMPP http.conf中添加以下行:
和LoadModule wsgi\u modules/mod\u wsgi.so
WSGIPythonHome“C:/Python27”
WSGIPythonPath“项目路径”
WSGIApplicationGroup“%{GLOBAL}”
WSGIPassAuthorization“开启”
- 重新启动Apache或计算机,就可以开始了
注意:您无需在python的已安装应用程序中添加mod_wsgi,因为它已安装在Apache服务器中不要使用该站点的任何内容,它是旧东西,但无法删除,因为Google不允许。请阅读中的说明并自行构建。您可能需要将
MOD\u WSGI\u APACHE\u ROOTDIR
设置为C:/xampp/APACHE
。您仍然可以使用Python 2.7。不过我至少推荐Python 3.5。您好,先生!Hi已经按照您建议的步骤安装了mod_wsgi。mod_wsgi-express模块配置为Apache中的LoadModule{c:/python27/lib/site packages/mod_wsgi/server/mod_wsgiNone}生成了一条路径,我在httpd.conf中添加了该路径,重新启动了Apache,但它仍然无法工作。如果该行是这样出现的,那么它在您使用的旧Python版本中就不能正常工作。目录c:/python27/lib/site packages/mod_wsgi/server/mod_wsgi
旁边的文件名是什么。应该有一个以mod_wsgi
开头,以.pyd
结尾的文件。它是该文件的路径,应该是LoadModule
的参数。我不知道为什么它会输出旧Python版本的字典表示。它应该只是文件路径的一个参数,没有大括号等。我已经尝试使用easy_install再次安装它。它在站点包中生成mod_wsgi-4.5.14-py2.7-win32.egg目录。目录中有EGG-INFO和mod wsgi目录,然后在mod_wsgi/server中我可以找到mod_wsgi.pyd。当我运行mod_wsgi-express module config时,它会打印:LoadModule wsgi_module“c:/python27/lib/site packages/mod_wsgi-4.5.14-py2.7-win32.egg/mod_wsgi/server/mod_wsgiNone“WSGIPythonHome”c:/python27“我已经在http.conf中复制了LoadModule行,重新启动了我的Apache,但它仍然不工作。目录中是否有任何带有.pyd
、.pyo
或的文件。因此
扩展名?win32目录中的内容已过时,请不要使用它。pip-install
方法是更好的方法,也是目前Windows上以任何方式支持的唯一方法。问题在于,对于某些人来说,mod_wsgi-express module config
的输出是错误的。找出pyd
文件的正确路径并使用它。可能只是将None
更改为.pyd
。我更希望你坚持整理,使用mod_wsgi邮件列表进行讨论。StackOverflow是最不适合在需要讨论的地方帮助解决这些问题的地方。据猜测,仍然存在问题的原因是Python DLL需要强制加载。最近的mod_wsgi-express module config
将生成一个LoadFile
指令来执行此操作。谢谢,先生。我已经用这种方法安装了mod_wsgi