RuWeb.net Forum

Как использовать 2 версии PHP на выделенном сервере/VDS
timru - 16.10.2013 в 17:02

Система портов FreeBSD позволяет установить только одну версию PHP. Точка. Все остальное - поделки самоделкина. Мы категорически не рекомендуем пытаться настроить еще одну версию PHP. Данная инструкция - на крайний случай.
Внимание! Мы не гарантируем оказание технической поддержки по отдельно собранным версиям PHP (даже платной, и даже если это мы собирали). А также не несем ответственности за любые конфликты в работе ПО при использовании двух версий PHP.

Пример: в системе установлен PHP 5.3. Мы хотим для какого-то пользователя использовать PHP 5.2. Чтобы минимизировать конфликты, мы будем компилировать php от имени этого пользователя и устанавливать бинарники в его же домашнюю директорию. Если мы все сделаем правильно, то не навредим системе, и в случае возникновения проблем достаточно будет удалить этого пользователя.

1. Создаем в ISPmanager пользователя. Например pupkin. Также создаем сайт внутри пользователя pupkin, например pupkin.ru, причем в качестве режима работы PHP выбираем "PHP как CGI".

2. Заходим в ssh под именем pupkin. Можно войти под root-ом, а затем выполнить:
# su -m pupkin
# whoami
Результатом второй команды должен быть "pupkin", не "root"!

3. Создаем директории /home/pupkin/data/build и /home/pupkin/data/php52
# mkdir /home/pupkin/data/build /home/pupkin/data/php52

4. Заходим в папку build
# cd /home/pupkin/data/build

5. Скачиваем php 5.2. Рекомендуется взять отсюда:
http://tim.ruweb.net/svalka/php/php-5.2.17-patched.tgz
это последняя версия PHP 5.2 с наложенными патчами безопасности и с mailheader-патчем.
# wget http://tim.ruweb.net/svalka/php/php-5.2.17-patched.tgz

6. Распаковываем архив и входим в него:
# tar -xf php-5.2.17-patched.tgz
# cd php-5.2.17-patched

7. Компилируем PHP (с некоторым наобором частоиспользуемых расширений):
# ./configure --prefix=/home/pupkin/data/php52 --enable-fastcgi --with-openssl --with-zlib --with-bz2 --with-gd --with-gettext --with-mhash --enable-mbstring --with-mcrypt --with-mysql=/usr/local --with-mysqli=/usr/local/bin/mysql_config --with-pdo_mysql=/usr/local --with-curl=/usr/local --with-jpeg-dir=/usr/local
# make
# make install
В результате в /home/pupkin/data/php52 должны появиться каталоги и файлы. В частности должен быть /home/pupkin/data/php52/bin/php-cgi

8. Отредактируем файл /home/pupkin/data/php-bin/php
Он должен принять следующий вид:
----------------
#!/home/pupkin/data/php52/bin/php-cgi

----------------

9. Проверяем работу сайта pupkin.ru. Он должен заработать на PHP 5.2. А также все сайты, созданные внутри пользователя pupkin с режимом работы "PHP как CGI" будут работать на PHP 5.2.



[Отредактировано 12.11.2015 кто timru]