Автор: Сергей
Установка нескольких независимых версий PHP
Была поставлена задача объединить, несколько серверов под FreeBSD которые обслуживали сайты.
Как выяснилось версия php на одном сервере была:
- /usr/local/bin/php -v
PHP 5.3.10 with Suhosin-Patch (cli) (built: Jul 31 2012 15:40:23)
а на втором:
- /usr/local/bin/php -v
PHP 5.4.19 (cli) (built: Sep 17 2013 15:54:45)
И с этого момента начинается то о чем я собственно и хотел написать)))
Проблема в том что некоторые сайты на отрез отказывались работать с более новой версией php.
Для этого создаем папочку, переходим в нее:
- mkdir /usr/local/php53.10/
В данную папочку копируем нужную версию php:
- fetch:http:/версия php/
распаковываем скачанный архив:
- tar xf php-5.3.10.tar.bz2
Переходим в папку php-5.3.10
- cd php-5.3.10/
Конфигурируем пхп с нужными параметрами
- ./configure --prefix=/usr/local/php53.10/php-5.3.10/ --with-mysql --with-ldap
в моем случаи --with-mysql поддержка mysql;
--with-ldap поддержка лдап;
--prefix=/usr/local/php53.10/php-5.3.10/ путь куда все безобразие будет установлено.
Устанавливаем пхп
- make install clean
Устанавливаем конфиг php.ini
cp php.ini-development /usr/local/php53.10/php-5.3.10/lib/php.ini
Переходим в конфиг апача:
- mcedit /usr/local/etc/apache22/httpd.conf
Раскоментируем строчку:
- ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
Правим cgi директорию (не уверен что данный вариант идеальный)
AllowOverride None
Options FollowSymLinks +ExecCGI MultiViews SymLinksIfOwnerMatch
Order allow,deny
Allow from all
Сохраняем файл и выходим из редактора.
Переходим в папку cgi:
- cd /usr/local/www/apache22/cgi-bin/
Создаем симлинки:
- ln -s /usr/local/php53.10/php-5.3.10/bin/php-cgi php5310
После этих манипуляций достаточно добавить в .htaccess вашего сайта следующии строки
- AddHandler php-cgi .php5310 .php
Action php-cgi /cgi-bin/php5310
Где php5310 симлинк который мы сделали.
Пример минимальных настроек виртуального хоста:
ServerName test.wiset.pp.ua
DocumentRoot www/test
Для проверки загрузились ли модули:
- httpd -M | grep cgi