【问题标题】:How to set Mod_Env in Apache24 Windows如何在 Apache24 Windows 中设置 Mod_Env
【发布时间】:2018-01-22 00:06:42
【问题描述】:

也许是一个愚蠢的问题,但我如何在 apache 中传递环境变量。我在 apache 的 httpd.conf 文件中启用了 LoadModule env_module modules/mod_env.so 语句,我从 documentation 知道我应该使用语句 PassEnv env-variable [env-variable]。但是我到底需要在哪里添加这一行(在哪个文件中,在什么位置)?

即我想要我的系统变量

PassEnv PYTHONPATH C:\Python\DLLs;C:\Python\lib;C:\Python;C:\Python\lib\site-packages

要传播到我的网络服务器。我把它放在哪里?

抱歉,我是 apache 的绝对初学者,似乎找不到任何有关此问题的分步说明。

【问题讨论】:

    标签: python apache apache2 apache2.4 mod-env


    【解决方案1】:

    您可以在.htaccess文件中设置环境变量,该文件需要放在您网站的根目录下:

    PassEnv PYTHONPATH C:/Python/DLLs;C:/Python/lib;C:/Python;C:/Python/lib/site-packages
    

    请注意,我在路径中使用了正斜杠,这样 apache 就不会将它们解释为转义字符。

    要启用.htaccess 文件,您还需要确保webroot(即DocumentRoot)在配置中有AllowOverride All

    <Directory "C:/WEBROOT">
    Options +Indexes +FollowSymLinks +MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
    

    【讨论】:

    • 感谢您的快速回复!我使用上面的命令行创建了一个 EnvVar.htaccess 文件,并将其放置到网站根目录 (C:\Apache24\htdocs\Test)。但是它似乎没有效果......当我调用我的 pythonscript python.py (C:\Apache24\htdocs\Test\cgi-bin) 时,它只是执行:print("PYTHONPATH" in os.environ) 我得到False 作为输出。我错过了什么吗?
    • 文件名应该是.htaccess 而不是EnvVar.htaccess。为了确保路径将被 apache 正确解析,我还应该使用正斜杠,即 PassEnv PYTHONPATH C:/Python\DLLs;C:/Python/lib;C:/Python;C:/Python/lib/site-packages
    • 进行了更改,重新启动了 apache,甚至物理地重新启动了电脑,但仍然没有效果。会不会是权限问题?
    • 您可以尝试检查日志文件 - 我不知道它在 Windows 上的位置,但您应该可以使用 apache2ctl -Shttpd -S 之类的东西进行检查,我认为
    • @N.Maks - 我更新了我的答案。如果您需要更多帮助,我可以在聊天中指导您完成
    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 2019-12-03
    • 2021-09-04
    • 2021-08-13
    • 2012-03-06
    • 2015-12-25
    • 2019-03-07
    • 1970-01-01
    相关资源
    最近更新 更多