![PHP + mod_fastcgi + suexec 无法读取 .htaccess 中通过 SetEnv 设置的变量](https://linux22.com/image/723762/PHP%20%2B%20mod_fastcgi%20%2B%20suexec%20%E6%97%A0%E6%B3%95%E8%AF%BB%E5%8F%96%20.htaccess%20%E4%B8%AD%E9%80%9A%E8%BF%87%20SetEnv%20%E8%AE%BE%E7%BD%AE%E7%9A%84%E5%8F%98%E9%87%8F.png)
我们通过 mod_fastcgi + suexec 运行 PHP,似乎以这种方式运行的 PHP 进程看不到通过文件中设置的环境变量SetEnv
。.htaccess
我通过 perl 脚本和 shell 脚本(均通过 运行mod_cgid
)检查了 SetEnv 确实设置了一个变量(即允许这样做AllowOverride
并且mod_env
已加载)。我通过 、 、 进行了检查$_SERVER
,$_ENV
发现getenv()
PHP
$HTTP_ENV_VARS
没有phpinfo()
看到该变量。我还没有尝试找到合适的解决方案,但我会发布一个不错的解决方法。
答案1
对于遇到相同问题的用户,一个不方便但快速的解决方法是将文件SetEnv
中的相关行复制.htaccess
到VirtualHost
相应域的配置块中,然后重新启动 Apache。这样设置的变量似乎对 PHP 可见。