2016-11-16 187 views
0

如何在Windows上更改Apache 2.4进程的PATH环境变量? 我希望能够通过与应用程序安装程序捆绑的自定义Python分发来加载mod_wsgi。现在只有当Python被单独安装并且python dll已经在Windows/system32文件夹中时才加载。Apache 2.4 - 如何在Windows上设置PATH环境变量

我不想修改系统PATH变量。

根据此文件:

SETENV应该被允许设置PATH中的Apache 2.4,但它似乎并没有为我工作。 Windows事件查看器显示“无法将modules/mod_wsgi.so加载到服务器中:找不到指定的模块”。它只适用于Windows/system32中已存在python27.dll。

+1

“SetEnv”指令用于设置CGI脚本的进程环境变量。在mod_wsgi中,该指令将导致每个请求变量在WSGI''environ''字典中设置,并且每个请求都传递给WSGI应用程序。在mod_wsgi下没有为WSGI应用程序处理任何环境变量。 –

+0

@GrahamDumpleton那么这是坏消息,因为我真的不想在客户机器上修改全局PATH变量。你知道任何设置这个值的方法只适用于启动时的Apache进程,或者可能只是为1个Windows服务设置它的方法吗? – matf

+1

尝试并使用Apache的LoadFile指令强制加载“python27.dll”到完全启动的Apache路径中。您可能仍然需要使用''WSGIPythonHome''来尝试告诉mod_wsgi您的Python安装位置。不知道该指令在Windows上的工作情况。 –

回答

2

如果Python的DLL不在路径,不能有加,您可以添加到Apache配置文件:

LoadFile C:/Python27/libs/python27.lib 

这必须是LoadModule线为wsgi_module之前。

您可能还需要设置:

WSGIPythonHome C:/Python27 

其中的说法是sys.prefix的Python安装的价值。

如果Python从mod_wsgi中初始化时找不到Python安装的位置,则需要更高版本。

+0

我可以确认这在Apache 2.2上工作,并完全忽略任何其他python27.dll驻留在Windows/system32文件夹,并将正常加载。 另外“LoadFile”应该得到dll文件不是lib的路径。 – matf

相关问题