而我在httpd.conf(Apache)的SETENV = PROD
定義並在PHP來電ENV(使用的getenv()函數)GETENV從終端運行PHP腳本
從終端(MAC)運行的同時返回null php file.php env爲NULL
但是當我從網頁上運行它的工作時;並打印「prod」
而我在httpd.conf(Apache)的SETENV = PROD
定義並在PHP來電ENV(使用的getenv()函數)GETENV從終端運行PHP腳本
從終端(MAC)運行的同時返回null php file.php env爲NULL
但是當我從網頁上運行它的工作時;並打印「prod」
在macOS和Linux中,有幾種方法可以設置在控制檯(終端)中運行的程序的環境。 (該程序在Windows上相似,但語法不同。)
你可以把env=prod
在命令行前設置環境變量env
與價值prod
僅適用於命令行的當前執行:
$ env=prod php -f script.php
您可以使用export env=prod
作爲單獨的命令行。它爲環境值env
設置值prod
,用於當前在控制檯中運行的shell的執行。在它前面的export
關鍵字告訴shell傳遞變量從現在開始啓動的所有進程(直到您關閉Shell或取消設置的變量):
$ export env=prod
$ php -f script.php
如果要永久設置變量,然後您將export env=prod
行設置爲~/.profile
或~/.bashrc
或您首選shell的初始化腳本(如果它不是bash
)。所有後續啓動的shell實例都將執行初始化腳本,並在其環境中將env
變量的值設置爲prod
,並將其標記爲可導出到shell啓動的子進程。
apache是一個sapi,cli是完全不同的一個。 – hassan
另外很可能你有一個用於Apache的'php.ini',另一個用於PHP CLI – RiggsFolly
因此,當您以完全繞過Web服務器的方式執行PHP腳本時,您在Web服務器級別配置的內容不起作用(命令線) - 這應該不是一個驚喜。 – CBroe