
我在 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
答案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
.
順便提一句,點德布對您來說可能是更好的選擇。