Ошибка PHP при работе с модулем xmlreader.so
На сервере под управлением FreeBSD 8.0-RELEASE архитектуры i386 работает веб-сервер apache-2.0.63 с прикрученным к нему языком php5-5.3.6. После недавнего обновления системы (с помощью portupgrade), при перезагрузке apache2 в его логах появились ошибки следующего вида: |
# less /var/log/apache2/httpd-error.log ... PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/xmlreader.so' - /usr/local/lib/php/20090626/xmlreader.so: Undefined symbol "dom_node_class_entry" in Unknown on line 0 ...
Одновременно запуск команды php -v стал выдавать такую же ошибку:
# php -v PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/xmlreader.so' - /usr/local/lib/php/20090626/xmlreader.so: Undefined symbol "dom_node_class_entry" in Unknown on line 0
Переустановка php5-extensions с включенной поддержкой модуля xmlreader.so ошибку не исправил.
Решил вручную переустановить php5-xmlreader.
# cd /usr/ports/ # whereis php5-xmlreader php5-xmlreader: /usr/ports/textproc/php5-xmlreader # cd /usr/ports/textproc/php5-xmlreader # make reinstall clean
Это исправило ситуацию, и больше ошибки при запуске php
с ключем -v
:
# php -v PHP 5.3.6 with Suhosin-Patch (cli) (built: Mar 28 2011 09:51:29) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
И при перезапуске apache2
в его логах не фиксировались.
# less /var/log/apache2/httpd-error.log ... [Mon Mar 28 17:37:27 2011] [notice] Graceful restart requested, doing restart [Mon Mar 28 17:37:28 2011] [notice] Apache/2.0.63 (FreeBSD) PHP/5.3.6 with Suhosin-Patch configured -- resuming normal operations ...
Только перед перезапуском apache2 убедитесь, что в файле extensions.ini модуль xmlreader.so вызывается только один раз. Сделать это можно командой:
# less /usr/local/etc/php/extensions.ini | grep xmlreader.so extension=xmlreader.so
Если результатом этой команды будут две или более одинаковых строчек extension=xmlreader.so
, удалите все, кроме одной из них в файле /usr/local/etc/php/extensions.ini.
если после переустановки php5-xmlreader и рестарта апача ошибка снова появляется, перенос строчки extension=dom.so выше строчки extension=xmlreader.so спасает день.
FreeBSD 9.1-RELEASE-p7
PHP 5.4.21
если после переустановки php5-xmlreader и рестарта апача ошибка снова появляется, перенос строчки extension=dom.so выше строчки extension=xmlreader.so спасает день.
Действительно помогло.
FreeBSD 10.0-RELEASE #0 r260789
PHP 5.4.31