我已经阅读了这里的问题/答案,但我不明白如何在/etc/environment中设置变量。如果我编辑该文件,我需要重新启动计算机还是仅注销当前用户(或登录新用户)?
我想设置一个全局变量,表示我的计算机上的网站处于“开发”或“测试”模式。我不想为每个项目设置此选项(无论它使用PHP、Java/Tomcat、NodeJS等)。我知道(对于Apache),我可以按以下方式设置环境变量:
- 直接从php中使用
putenv()
(由于我要避免试图确定文件在哪台服务器上,所以这似乎没用) - 使用.htaccess
SetEnv ENVIRONMENT 'local'
(这将要求我为每个服务器复制此文件/代码,不理想) - 使用Virtual Host指令
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'));