
Я установил PHP 5.3.8 из исходников на Ubuntu Natty. Я также включил 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.ini, когда я перезапускаю PHP (отсюда и сообщение, что модуль уже загружен)?! Если да, есть ли способ предотвратить это, чтобы остановить ошибки, поскольку они становятся фатальными, когда я загружаю 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
.
Кстати,dotdebможет быть лучшим вариантом для вас.