我已阅读此处的问题/答案,但我不明白如何在/etc/environment中设置变量。如果我编辑文件,我需要重新启动我的机器还是简单地注销我当前的用户(或登录一个新用户?)。
我想设置一个全局变量来表示我机器上的网站处于“开发”或“测试”模式。我不想为每个项目都设置这个(无论是使用 PHP、Java/Tomcat、NodeJS 等)。我知道(对于 Apache)我可以通过以下方式设置环境变量:
- 直接从 php 使用
putenv()
(这似乎没用,因为我想避免试图找出文件在哪个服务器上的逻辑) - 使用 .htaccess
SetEnv ENVIRONMENT 'local'
(这需要我为每个服务器复制这个文件/代码,不理想) - 使用虚拟主机指令
SetEnv ENVIRONMENT 'local'
(如果我使用的是虚拟主机,几乎在所有情况下我都是,但又需要我一遍又一遍地复制/粘贴代码) - 在 httpd-conf 中
SetEnv ENVIRONMENT 'local'
(这只适用于 apache,我希望它也适用于 NodeJS 服务器)
我并不是说我不能做#4(并有选择地将#3 应用于 NodeJS 服务器)。但我认为这是使用 /etc/environment 的一个很好的理由。正如我上面所说,我已经编辑了文件(在第一次创建它之后)并尝试了以下组合,但这些组合似乎都不起作用:
ENVIRONMENT='local'
ENVIRONMENT=local
export ENVIRONMENT='local'
export ENVIRONMENT=local
我说它们都不起作用,因为我没有在以下输出中找到变量:
print_r($_SERVER);
print_r($_ENV);
echo(getenv('ENVIRONMENT'));