Назад | Перейти на главную страницу

PHP не может загрузить динамическую библиотеку… но она загружена. Какого черта?

У меня есть сервер CentOS 5.4 с Apache 2.2.3, mod_fastcgi и PHP 5.2.11. Все работает отлично, сервер является производственным, и у меня нет никаких претензий. Когда я просматривал журнал ошибок PHP, чтобы диагностировать проблему с определенной страницей, я видел следующее, периодически повторяющееся снова и снова:

[03-May-2010 19:54:12] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/apc.so' - /usr/lib/php/modules/apc.so: undefined symbol: php_rfc1867_callback in Unknown on line 0
[03-May-2010 19:54:12] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_mysql.so' - /usr/lib/php/modules/pdo_mysql.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0
[03-May-2010 19:54:12] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/apc.so' - /usr/lib/php/modules/apc.so: undefined symbol: php_rfc1867_callback in Unknown on line 0
[03-May-2010 19:54:12] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_mysql.so' - /usr/lib/php/modules/pdo_mysql.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0

Я очень запутался, потому что APC является загружен, я вижу это в выводе phpinfo (). И, судя по сообщениям об ошибках, вообще ничего не должно работать. Тем не менее, сайты, похоже, работают нормально. Как мне отследить источник этой ошибки?

Я нашел виновника, есть какое-то задание cron, которое запускает другую версию PHP (/usr/bin/php против /usr/local/bin/php), и это вызывает эту проблему.