Отсутствие библиотеки libphp5.so после обновления php5
Мой сайт работает на отдельно стоящем сервере под управлением FreeBSD 10.0-RELEASE. В качестве www-сервера выступает apache22 версии apache22-2.2.27 с прикрученным к нему языком php5. Сегодняшнее обновление последнего до версии php5-5.4.27 принесло для меня несколько неприятных минут – apache отказывался стартовать из-за ошибки… |
Она выглядела следующим образом:
# /usr/local/etc/rc.d/apache22 start Performing sanity check on apache22 configuration: httpd: Syntax error on line 56 of /usr/local/etc/apache22/httpd.conf: Cannot load /usr/local/libexec/apache22/libphp5.so into server: Cannot open "/usr/local/libexec/apache22/libphp5.so" Starting apache22. httpd: Syntax error on line 56 of /usr/local/etc/apache22/httpd.conf: Cannot load /usr/local/libexec/apache22/libphp5.so into server: Cannot open "/usr/local/libexec/apache22/libphp5.so" /usr/local/etc/rc.d/apache22: WARNING: failed to start apache22
Как оказалось, язык php5 больше не ставится самостоятельно, как модуль для apache22. Чтобы включить возможность их совместного использования, теперь необходимо установить отдельно модуль mod_php55. Во FreeBSD – это порт www/mod_php5. В файле /usr/ports/UPDATING
об этом существует запись от 27 марта 2014 года:
20140327: AFFECTS: users of lang/php5 and lang/php55 with Apache module AUTHOR: ale@FreeBSD.org The Apache PHP module has been separated from the main PHP port. If it is needed, install either www/mod_php5 or www/mod_php55.
Все, что мне было необходимо – установить данный порт в систему:
# cd /usr/ports/www/mod_php5 # make config
# make install clean
и прописать в моем конфигурационном файле httpd.conf для apache22 заново следующие строки:
# nano -w /usr/local/etc/apache22/httpd.conf ... LoadModule php5_module libexec/apache22/libphp5.so ... <IfModule php5_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> ...
После указанных действий запуск www-сервера apache22 прошло без ошибок и мой сайт заново стал доступен:
# /usr/local/etc/rc.d/apache22 start Performing sanity check on apache22 configuration: Syntax OK Starting apache22.
Ага, черти навертели с модулем, а ведь было так привычно с опцией apache module :-)