PHP4 and PHP5 together under FreeBSD
Итак, задача: есть сервер с php4 и сервер с php5. Везде как модули. Который с php5 часто рубают по питанию (да, такой провайдер Fasty, и да, я не могу ничего с этим сделать ибо не мой сервер).
И вот возникла мысль - поднять на сервере с php4 php5 как cgi. Делов-то, в линуксе на 5 минут. Но не во FreeBSD, нет, это не наш путь.
Итак, я обновил порты и сделал так:
[cc lang="bash"]
#cd /usr/ports/lang/php5
#make PREFIX=/isr/local/php5 install
[/cc]
И все легко и просто встало. Но... дальше я задумался о модулях. Как их поставить? Просто? А вот и нифига.
[cc lang="bash"]
#cd /usr/ports/databases/php5-mysql
#make PREFIX=/usr/local/php5 install
[/cc]
и получаем матюки насчет того, что не будет оно собираться для php4. Я задумался о том, что php4 стоит в системных путях. И оно находит его, а не то что указано по префиксу. Надо лечить, подумалось мне. Но как - не знал.
И вот на irc добрый iATlevsha посоветовал поправить /usr/ports/Mk/bsd.php.mk.
Зашел я туда, и там везде в путях вместо ${PREFIX} указано ${LOCALBASE}. Надо заметить, что сборка
[cc lang="bash"]
#make PREFIX=/usr/local/php5 LOCALBASE=/usr/local/php5 install
[/cc]
попыталась мне туда вломить все необходимые зависимости. Например, перл. Его-то там нет (в смысле,в /usr/local/php5). Мне это не понравилось.
И в файлике /usr/ports/Mk/bsd.php.mk мною все что нужно было исправлено с ${LOCALBASE} на ${PREFIX}.
О чудо! После этого все экстеншены начали соираться и нормально ставиться. А я еще больше утвердился в мысли что FreeBSD я по своей воле пользовать не буду.