![PHP-FPM 工作者搞乱了 php.ini 加载?](https://linux22.com/image/567600/PHP-FPM%20%E5%B7%A5%E4%BD%9C%E8%80%85%E6%90%9E%E4%B9%B1%E4%BA%86%20php.ini%20%E5%8A%A0%E8%BD%BD%EF%BC%9F.png)
我在 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-FPM 配置设置为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
。
顺便提一句,点德布对你来说可能是更好的选择。