PHP-FPM Workers 搞亂 php.ini 載入?

PHP-FPM Workers 搞亂 php.ini 載入?

我在 Ubuntu Natty 上從原始碼安裝了 PHP 5.3.8。我還在配置過程中啟用了 FPM。

但是,我在安裝 PHP 擴充功能時遇到了問題。當我將擴充功能新增至我的 php.ini 檔案(例如extension=apc.so)並重新啟動 PHP(即/etc/init.d/php-fpm restart)時,我收到以下錯誤:

Starting php-fpm PHP Warning:  Module 'apc' already loaded in Unknown on line 0
<br />
<b>Warning</b>:  Module 'apc' already loaded in <b>Unknown</b> on line <b>0</b><br />
PHP Warning:  Module 'geoip' already loaded in Unknown on line 0
<br />
<b>Warning</b>:  Module 'geoip' already loaded in <b>Unknown</b> on line <b>0</b><br />
PHP Warning:  Module 'imagick' already loaded in Unknown on line 0
<br />
<b>Warning</b>:  Module 'imagick' already loaded in <b>Unknown</b> on line <b>0</b><br />
PHP Warning:  Module 'memcache' already loaded in Unknown on line 0
<br />

我的 PHP-FPMconf 有設置pm.start_servers = 5,所以我有大約 5 個活躍的 PHP-FPM 工作人員。當我重新啟動 PHP 時,它們是否都試圖載入 php.ini 檔案(因此出現模組已載入的訊息)?如果是的話,有沒有辦法可以防止這種情況發生,因為當我載入 Zend Loader 時錯誤變得致命?

提前致謝。

答案1

我之前在 StackOverflow 上解決了這個問題。這是訊息的連結。

每個 PHP-FPM Worker 是否單獨載入 php.ini?

乾杯。

答案2

以下命令顯示使用了哪些 .ini 檔案:

ubuntu@server:~$ php --ini
Configuration File (php.ini) Path: /usr/local/etc
Loaded Configuration File:         /usr/local/etc/php-cli.ini
Scan for additional .ini files in: /usr/local/etc/php
Additional .ini files parsed:      /usr/local/etc/php/apc.ini,
/usr/local/etc/php/memcache.ini,
/usr/local/etc/php/xhprof.ini

這應該可以幫助您排除故障。

大多數時候,您不想php.ini直接編輯,而是透過在目錄中放置其他 .ini 檔案來覆蓋/擴展配置(/usr/local/etc/php在我的範例中)。

如果未設定/不可用,則需要調整命令./configure以包含--with-config-file-scan-dir.

順便提一句,點德布對您來說可能是更好的選擇。

相關內容