我在Mac OS X 10.9.4上使用PHP 5.4.24运行Apache 2.2.26。我有几个虚拟主机在这个系统上运行,并且它们都成功运行。我试图向其中一个虚拟主机添加环境变量,我不希望它们在.htaccess中,所以我唯一的选择是将它们添加到httpd-vhosts.conf中。http-vhosts.conf虚拟主机环境变量不起作用
问题是,在我将它们安装到httpd-vhosts.conf文件(当然,在重新启动Apache“sudo apachectl restart”)后,环境变量没有出现。但是,如果我将它们添加到.htaccess(仅用于比较目的),它们显得很好。我错过了什么?
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mysite.local
DocumentRoot "/path/to/mysite.com"
SetEnv siteid 1234
ErrorLog "/var/log/apache2/mysite.local-error_log"
</VirtualHost>
我也仔细检查我的php.ini文件,以确保没有什么是望而却步那里,唯一相关的线看起来不错:
variables_order = "GPCSE"
同样,仅仅是明确的,我虚拟主机RUN FINE。只是在我的PHP代码中调用时,环境变量才会出现。我已经尝试了这三个命令中的每一个:
echo $_SERVER["siteid"];
echo getenv("siteid");
echo apache_getenv("siteid");
我能做什么错?
如果你打算低估这个问题,至少告诉我为什么。我非常简洁地概述了我的问题,并提供了详细的平台和版本信息。你怎么敢。 – David 2014-11-06 04:52:37
我同意,有一个upvote。你为什么从默认'variables_order'(EGPCS)更改的原因?仅供参考,这在我的服务器上正常工作。 – Phil 2014-11-06 04:58:18
谢谢@Phil。它之前被设置为GPCS,因此我只是将E添加到最后,而没有任何考虑。我现在看到“默认值:'EGPCS'”指令行,并相应地进行了更新。不幸的是,我重新启动了Apache,并没有影响我的问题。 – David 2014-11-06 05:02:22