2014-07-11 40 views
0

我使用PHP和NGINX和Mac/linux。我想設置環境變量,以便可以從命令行或通過Web服務器運行的腳本訪問它們。設置命令行和網絡服務器(PHP)的環境變量

設置$_SERVER我的nginx配置中的fastcgi params不起作用,因爲它們在通過命令行運行的cron作業中不可用。

出於安全原因,在Web應用程序本身設置變量不是一個好主意,所以我也不想這樣做。

什麼是正確的方法來做到這一點?

+0

請參閱文檔http://php.net/manual/en/function.putenv.php。你在找什麼? – Athafoud

+0

@Athafoud謝謝,但他們不能在腳本中設置。這是一個安全問題。 –

+0

瞭解!爲什麼不將變量轉儲到兩個腳本均可訪問的文件中?另外,如果我沒有錯誤'cron'運行在一個非常嚴格的環境中,沒有完全訪問完整路徑 – Athafoud

回答

1

一種方法是將auto_append_filephp.ini設置爲具有setenv()行的PHP文件。然後使用getenv()。我不確定OSX是否有針對網絡和cli的php.ini文件。

剛剛重讀,並看到你說的Mac/Linux。對於Linux,您可以在/etc/profile/etc/profile.d中設置這些變量。快速搜索顯示OSX的/etc/launchd.conf。不確定這些文件的範圍,但可能值得一試。

+0

這聽起來不錯。讓我嘗試一下。謝謝! –

+0

用可能的替代方法進行編輯。 – AbraCadaver

+0

再次感謝,幾乎在Mac上測試你的第一個選項。之後將到達linux/ubuntu並報告兩者。 –

相關問題