Ошибка запуска apache22
Возникла необходимость на сервере под управлением FreeBSD 10.0-RELEASE, где установлен web-сервер apache22 (версия – apache22-2.2.27) с прикрученным к нему языком php5 (версия – php5-5.4.29), установить библиотеку расширения php5-imap (версия – php5-imap-5.4.29). После её инсталляции и попытке перезапуска apache22, последний отказался стартовать (все сайты оказались неработоспособными). В логах-же работы apache22 появились ошибки… |
Возникла ошибка следующего вида:
# less /var/log/apache22/httpd-error.log [Wed Jul 02 12:49:30 2014] [notice] Graceful restart requested, doing restart /usr/local/lib/php/20100525/imap.so: Undefined symbol "ssl_onceonlyinit"
Данная ошибка возникла из-за моей невнимательности. Порт mail/php5-imap
зависит от порта mail/cclient
:
# pkg info | grep php5-imap php5-imap-5.4.29 The imap shared extension for php # pkg info -d php5-imap-5.4.29 php5-imap-5.4.29: openssl-1.0.1_13 cclient-2007f_1,1 php5-5.4.29 # pkg info -r cclient-2007f_1,1 cclient-2007f_1,1: php5-imap-5.4.29
Который, как оказалось, необходимо в обязательном порядке собирать с опцией SSL (как показано на рисунке) ниже. Так что мне пришлось пересобрать данный порт (mail/cclient) с включенной поддержкой ssl и перезапустить апач. Только тогда ошибка пропала. Делаем:
# cd /usr/ports/ # make search name=cclient-2007f # cd /usr/ports/mail/cclient # make config
Не забываем на этот раз отметить опцию SSL:
# make install clean # /usr/local/etc/rc.d/apache22 start
В логах появилась еще одна “нехорошая” запись, но апач запустился штатно.
# less /var/log/apache22/httpd-error.log [Wed Jul 02 12:49:30 2014] [notice] Graceful restart requested, doing restart /usr/local/lib/php/20100525/imap.so: Undefined symbol "ssl_onceonlyinit" [Wed Jul 02 12:57:33 2014] [warn] pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run? [Wed Jul 02 12:57:33 2014] [notice] Apache/2.2.27 (FreeBSD) PHP/5.4.29 configured -- resuming normal operations
К слову, в конце инсталляции порта cclient-2007f
показывали предупреждающее сообщение:
> Compressing man pages (compress-man) => Installing for cclient-2007f_1,1 => Registering installation for cclient-2007f_1,1 Installing cclient-2007f_1,1... done ============================================================================ Warning: You have chosen to include SSL support. Applications/ports that use the cclient library but do not support SSL may stop working or have problems linking. Linking them explicitly with ssl (-lssl -lcrypto) may or may not help. ============================================================================