После обновления версии PHP 5.2.* c PHP 5.3.6 на своём небольшом VDS с FreeBSD 8 возникла небольшая проблема: PHP не хотел устанавливать модуль filter.so, который содержит множество полезных инструментов для фильтрации и валидации различных типов данных, что практически заставляет отказаться от регулярных выражений для решения ряда этих задач. Так вот, при установке расширения filter.so установщик жаловался на отсутствие PCRE или типа того. Среди кучи разнообразной юниксовской ругани были строки:
Stop in /usr/ports/security/php5-filter.
*** Error code 1
Начал искать решение в интернете.
В чём заключалась сама проблема я так и не понял, но зато нашёл её решение:
# cd /usr/ports/lang/php5/
# make extract
# cp /usr/ports/lang/php5/work/php-5.3.6(текущая версия)/ext/pcre/pcrelib/pcre.h /usr/local/include/php/ext/pcre/
При этом порт php5 должен быть мейкнутым (make). Если вы делали clean, то нужно предварительно сделать make:
# cd /usr/ports/lang/php5/
# make
Не забудьте перезапустить апач на сервере!
Если данные рукоблудства проблему не решили — пробуем обновить ПО:
# portupgrade -f php5
# portupgrade -a
# cp /usr/ports/lang/php5/work/php-5.3.6(текущая версия)/ext/pcre/pcrelib/pcre.h /usr/local/include/php/ext/pcre/
Процесс достаточно продолжительный, иногда выскакивают диалоговые окна с вопросами, на которые нужно ответить.