环境variables不会从.htaccess传递到PHP

我想通过.htaccess通过一个环境variables到PHP。 这工作得很好,在我的本地WAMP服务器,但在我的网站托pipe的服务器上,它没有原因失败。

这是我的testingconfiguration:

的.htaccess:

SetEnv TEST_VARIABLE test_value

test.PHP的:

windows批处理脚本 – 在循环内设置variables

包含带有空格的可执行文件path的环境variables是否也包含必要的引号?

在Windows 7中放弃CALLbatch file环境variables

在哪里设置path

定期更改环境variables

<pre> getenv('TEST_VARIABLE') = <?PHP print getenv('TEST_VARIABLE'); ?> getenv('REDIRECT_TEST_VARIABLE') = <?PHP print getenv('REDIRECT_TEST_VARIABLE'); ?> </pre>

在我的本地服务器上,获取test.PHP正确返回:

getenv('TEST_VARIABLE') = test_value getenv('REDIRECT_TEST_VARIABLE') =

但是在生产服务器上,它返回:

getenv('TEST_VARIABLE') = getenv('REDIRECT_TEST_VARIABLE') =

我排除的事情:

mod_env不安装/启用mod_env 。 不能,因为然后SetEnv不会被识别,我会得到一个500处理.htaccess。

httpd.conf AllowOverrides不包含FileInfo 。 不能,因为Apache会在遇到SetEnv指令时抛出一个错误“SetEnv not allowed here”,我又得到一个500。

PHP.ini中的variables_order不包含'E'。 这将解释$_ENV超全局为空(它是),但不是为什么getenv()不返回这些variables的值。

整个环境都搞砸了。 不能,因为getenv('PATH')和getenv('SERVER_NAME')仍然返回有效值。

在这一点上,我不知道什么样的configuration会导致这个问题。

如何从emacs中实际更改/设置环境variables

如何在运行Inno Setup Installer时修改PATH环境variables?

ssh-keygen接受stdin

在巡航控制中设置环境variables

在OSX中永久设置PATH环境variables

我不认为使用setenv通常在.htaccess工程。 这是一个shell脚本命令(bash,C shell等)。 如果你的服务器支持setenv,按照https://kb.mediatemple.net/questions/36/Using+Environment+Variables+in+PHP#gs你需要让变量名以HTTP_开头&#x3002;

如果您在Mac上运行家庭服务器或者启用了suEXEC,则会有安全措施去除所有已定义的非http环境变量,因此它们不会出现在$ _ENV ['APPLICATION_ENV']中。 但是,您可以通过原生PHP函数访问这些函数来获得相同的结果。

$var = apache_getenv('APPLICATION_ENV');

函数将获得在.htaccess文件中使用SetEnv定义的任何环境变量,或者在PHP.ini中设置的任何环境变量,即使PHP将这些变量从$ _ENV变量中删除

你可以在PHP中定义环境变量,如果你愿意的话,尽管不推荐。

$_ENV['APPLICATION_ENV'] = apache_getenv('APPLICATION_ENV');

或者更好的解决方案:只需定义一个全局:

define('APPLICATION_ENV',apache_getenv('APPLICATION_ENV'));

一旦你这样做,它应该按需要工作。

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...