我的apache无法在windows上找到mod_wsgi。我正在使用apache 2.2,服务器使用默认的httpd.conf正确启动。
我将mod_wsgi.so放入apache的modules目录(C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ modules),并具有所有用户的读/写权限。我将以下行添加到默认的httpd.conf
LoadModule wsgi_module 模块/ mod_wsgi.so
我在尝试启动apache时遇到此错误。有人有什么想法/建议吗?
httpd.exe:第129行的语法错误 C:/ Program Files / Apache Software 基金会/ APACHE2.2 / conf目录/ httpd.conf文件: 无法加载C:/ Program Files / Apache 软件 基金会/ APACHE2.2 /模块/ mod_wsgi.so 进入服务器:指定的模块 无法找到。
[Tue Nov 23 17:41:55 2010] [warn](操作系统 995)I / O操作已中止 因为线程退出或者是 申请要求。 :winnt_accept: 异步AcceptEx失败。
[2010年11月23日17:41:56] [通知] 子7384:发布了启动互斥锁
答案 0 :(得分:7)
您在模块目录中停留的mod_wsgi模块文件的确切名称是什么。你从下载的内容中重命名了吗?你确定你没有在名称中添加额外的.so以获得mod_wsgi.so.so吗?如果您这样做,Windows可能会隐藏其中一个扩展名。
答案 1 :(得分:6)
另一种可能性是Apache 2.2安装为32位,而Python在64位计算机上安装为64位。我遇到过python mod_wsgi和遗留mod_python应用程序出错的情况。如果您运行的是32位Apache,那么无论版本如何,它都只喜欢找到32位Python。
答案 2 :(得分:0)
有关简单的解决方案,请参阅this page。您的apache很可能是在64位Windows上安装的32位,或者其他方式。或者你有一个文件名错误。要验证文件名是否正确并且存在所提及的扩展名:单击任何资源管理器窗口中的“工具”菜单,单击“文件夹选项”,然后在“查看”选项卡中,取消选中“隐藏已知文件类型的扩展名”,然后单击[应用]或[确定]。然后,您可以在验证mod_wsgi.so
答案 3 :(得分:0)
尝试
LoadFile "c:/yourPythonPath/python**.dll"
** =>您的python版本
在apache.config上
答案 4 :(得分:0)
环境python3.8.0 Apache2.4.41 mod_wsgi4.7.1 我已经在全局python环境中安装了mod_wsgi,这些是从输出到命令行的一些信息(我的python主页是E:\ Program Files \ python3.8):
将mod_wsgi-4.7.1-py3.8-win-amd64.egg提取到e:\ program files \ python3.8 \ lib \ site-packages 将mod-wsgi 4.7.1添加到easy-install.pth文件 将mod_wsgi-express-script.py脚本安装到E:\ Program Files \ Python3.8 \ Scripts 将mod_wsgi-express.exe脚本安装到E:\ Program Files \ Python3.8 \ Scripts
因此在目录E:\ Program Files \ Python3.8 \ Scripts中有一个可执行文件mod_wsgi-express.exe,您可以在命令行中运行以下命令
mod_wsgi-express模块配置
我的输出是:
LoadFile“ E:/ Program Files / Python3.8 / python3.8.dll” LoadModule wsgi_module“ E:/ Program Files / Python3.8 / lib / site-packages / mod_wsgi-4.7.1-py3.8-win-amd64.egg / mod_wsgi / server / mod_wsgi.cp38-win_amd64.pyd” WSGIPythonHome“ E:/ Program Files / Python3.8”
将输出复制到您的httpd.conf 产品{@ {3}}中提供了参考 这是我的第一次回答问题,我的月度语言不是英语,希望可以为您提供帮助。