我有一些PHP腳本,它使用一些環境變量,使用/ etc/environment中的getenv。當我使用php命令從終端運行它時,它工作正常。但是在終端上從nohup運行相同的腳本時,環境變量沒有得到。PHP腳本中的環境變量不能從nohup工作
PHP 5.3使用Debian 6
我有一些PHP腳本,它使用一些環境變量,使用/ etc/environment中的getenv。當我使用php命令從終端運行它時,它工作正常。但是在終端上從nohup運行相同的腳本時,環境變量沒有得到。PHP腳本中的環境變量不能從nohup工作
PHP 5.3使用Debian 6
我沒有問題:
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"));'
我在/ etc/envirment文件中有名爲DATABASE_URL的環境變量。在我的PHP代碼中,我正在像$ db = getenv('DATABASE_URL')那樣訪問它。它運行時,我運行腳本如php script.php但不是當我運行它像nohup php script.php& – user1551373
並使用你的第二個例子與出口,我仍然是錯誤的。有什麼設置我需要改變在PHP或Debian配置? – user1551373
在Ubuntu和Debian上,我通過導出和/ etc/environment獲得了正確的結果...事件 – ImmortalPC
你能告訴你終端命令,什麼是'nohup'? – Raptor
@ShivanRaptor nohup是一個在後臺運行腳本而不是終端的linux命令。 – user1551373