我使用PHP和NGINX和Mac/linux。我想設置環境變量,以便可以從命令行或通過Web服務器運行的腳本訪問它們。設置命令行和網絡服務器(PHP)的環境變量
設置$_SERVER
我的nginx配置中的fastcgi params不起作用,因爲它們在通過命令行運行的cron作業中不可用。
出於安全原因,在Web應用程序本身設置變量不是一個好主意,所以我也不想這樣做。
什麼是正確的方法來做到這一點?
我使用PHP和NGINX和Mac/linux。我想設置環境變量,以便可以從命令行或通過Web服務器運行的腳本訪問它們。設置命令行和網絡服務器(PHP)的環境變量
設置$_SERVER
我的nginx配置中的fastcgi params不起作用,因爲它們在通過命令行運行的cron作業中不可用。
出於安全原因,在Web應用程序本身設置變量不是一個好主意,所以我也不想這樣做。
什麼是正確的方法來做到這一點?
一種方法是將auto_append_file
的php.ini
設置爲具有setenv()
行的PHP文件。然後使用getenv()
。我不確定OSX是否有針對網絡和cli的php.ini
文件。
剛剛重讀,並看到你說的Mac/Linux。對於Linux,您可以在/etc/profile
或/etc/profile.d
中設置這些變量。快速搜索顯示OSX的/etc/launchd.conf
。不確定這些文件的範圍,但可能值得一試。
這聽起來不錯。讓我嘗試一下。謝謝! –
用可能的替代方法進行編輯。 – AbraCadaver
再次感謝,幾乎在Mac上測試你的第一個選項。之後將到達linux/ubuntu並報告兩者。 –
請參閱文檔http://php.net/manual/en/function.putenv.php。你在找什麼? – Athafoud
@Athafoud謝謝,但他們不能在腳本中設置。這是一個安全問題。 –
瞭解!爲什麼不將變量轉儲到兩個腳本均可訪問的文件中?另外,如果我沒有錯誤'cron'運行在一個非常嚴格的環境中,沒有完全訪問完整路徑 – Athafoud