2013-08-23 44 views
0

我有一些PHP脚本,它使用一些环境变量,使用/ etc/environment中的getenv。当我使用php命令从终端运行它时,它工作正常。但是在终端上从nohup运行相同的脚本时,环境变量没有得到。PHP脚本中的环境变量不能从nohup工作

PHP 5.3使用Debian 6

+2

你能告诉你终端命令,什么是'nohup'? – Raptor

+0

@ShivanRaptor nohup是一个在后台运行脚本而不是终端的linux命令。 – user1551373

回答

0

我没有问题:

nohup php -r 'var_export(getenv("PATH"));' 

同样的结果与

php -r 'var_export(getenv("PATH"));' 

也许你与用户的环境变量说话?

MY_VAR=42; 
nohup php -r 'var_export(getenv("MY_VAR"));' 
# The output will return false. 
# You need to use export 


export MY_VAR=42; 
nohup php -r 'var_export(getenv("MY_VAR"));' 
+0

我在/ etc/envirment文件中有名为DATABASE_URL的环境变量。在我的PHP代码中,我正在像$ db = getenv('DATABASE_URL')那样访问它。它运行时,我运行脚本如php script.php但不是当我运行它像nohup php script.php& – user1551373

+0

并使用你的第二个例子与出口,我仍然是错误的。有什么设置我需要改变在PHP或Debian配置? – user1551373

+0

在Ubuntu和Debian上,我通过导出和/ etc/environment获得了正确的结果...事件 – ImmortalPC