本篇文章給大家帶來的內容是關於PHP在運行時進行配置的方法介紹 ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。
在PHP啟動時會讀取PHP的設定檔php.ini,對於伺服器模組版本的PHP僅在web伺服器啟動時讀取一次,而CGI和CLI版本的PHP每次調用都會讀取。在php.ini檔案中可以使用環境變數,PHP5.1以後還可以在ini檔案中引用ini中已存在的變數。讀取php.ini檔案時,按如下順序尋找php.ini檔案:
SAPI模組所指定的位置(apache2中的PHPIniDir指令、CGI和CLI的 -c 命令列選項、NSAPI中的php_ini參數、THTTPD中的PHP_INI_PATH環境變數等)。
環境變數PHPRC,PHP5.2之前的順序在註冊表索引值之後。
PHP5.2起,在windows系統中,可以為不同的PHP版本設定不同的php.ini檔案位置,會按[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]、[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]、[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]的順序檢查註冊表目錄,其中x、y、z分別表示PHP的主要版本號、次版本號碼和發布版本號碼。在任一目錄中找到的第一個IniFilePath的值作為php.ini的位置。
在windows系統中註冊表[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]中IniFilePath的值。
除CLI外,當前工作目錄。
SAPI模式下web伺服器目錄,或者在windows下PHP所在目錄。
windows系統下windows系統目錄(c:\windows或c:\winnt),或者編譯時間--with-config-file-path選項指定的位置。
如果存在php-<SAPI>.ini,則會用它來代替php.ini,其中<SAPI>是指當前SAPI模組的名稱,比如CLI,名稱為php-cli.ini。SAPI的名稱可以通過函數php_sapi_name()擷取。
PHP5.3起支援每個目錄的.htaccess風格的ini檔案,此類檔案只可以被CGI/FastCGI SAPI處理,此功能使得PECL的htscanner擴充作廢。如果使用Apache,則用.htaccess檔案有同樣效果。除了php.ini檔案外,還會從被執行的PHP檔案所在目錄開始一直上升到$_server['DOCUMENT_ROOT']所指定的web根目錄掃做ini檔案。如果被執行的PHP檔案在web根目錄外,則只掃描被執行的PHP檔案所在的目錄。在.user.ini風格的ini檔案中只有PHP_INI_PERDIR和PHP_INI_USER模式的ini配置能被識別。
對於.user.ini檔案,有兩個配置用於控制ini檔案的使用:
user_ini.filename:指定PHP在目錄中尋找的ini檔案名稱,如果為空白字串,則不會進行尋找,預設值為.user.ini。
user_ini.cache_ttl:指定重新讀取ini檔案的時間間隔,單位為秒,預設值為300(5分鐘)。