2013-08-23 77 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