我對 php.ini 檔案進行了更改,因此每次更新 PHP 套件時都不會更新 php.ini 檔案。我想將我的更改“分叉”到另一個文件,這樣我就可以更新實際的 php.ini 文件而不會丟失我的更改。
我意識到 PHP 5.3 引入了按目錄 .ini 文件,但我的伺服器有多個虛擬主機 - 因此有多個文檔根 - 因此沒有一個地方可以使用按目錄方法放置覆蓋的 php.ini 文件。
有沒有辦法讓 PHP 檢查「正在修改」的 php.ini 檔案?
答案1
PHP 從某個目錄載入其他 .ini 檔。在 Debian 8 機器上,目錄是:/etc/php5/apache2/conf.d
。
該目錄中的檔案按字母順序加載,因此命名檔案00-overrides.ini
(例如)將導致首先加載它。該檔案中設定的設定將覆蓋預設 php.ini 中設定的設定。
答案2
如果您將 PHP 作為 Apache 模組運行,則有一個指令用於設定 PHP 將在其中尋找 php.ini 的目錄路徑:
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/php"
此範例適用於 Windows,但在 Linux 系統上的工作方式相同。
請注意,指定位置的 php.ini 將代替php.ini 位於預設位置,它不會以任何方式覆蓋或擴展它。
這樣,當您更新 PHP 時,它將覆蓋預設位置的 php.ini,但不會覆寫您自訂的 php.ini
參考:http://php.net/manual/en/install.windows.apache2.php#install.windows.apache2.module