PHP-FPM 工作者搞乱了 php.ini 加载?

PHP-FPM 工作者搞乱了 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-FPM 配置设置为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

顺便提一句,点德布对你来说可能是更好的选择。

相关内容