Установка двух версий php (5.2 и 5.3) на сервер с Centos и панелью ISPmanager

Четверг, 22 января 2015 00:40

PHP версии 5.2, хоть уже вроде и отжил своё, но всё-таки ещё бывает необходим. Ведь существуют ещё старые сайты, которые не будут работать на новых версиях php. К примеру те, которые закодированы Zend-ом под 5.2, да и не только они.

Имеем: север с OS Centos на борту, панелью ISPmanager и установленным стандартным способом php 5.3.x.

Задача: установить на сервер ещё и php 5.2, и реализовать удобное переключение между версиями для каждого сайта.

Основной версией php у нас будет именно 5.3, так как можно будет без всяких проблем обновляться и т.д., а вот дополнительной версией будет 5.2, так как разработка его завершена.

Суть в том, что php 5.2 мы установим как CGI, а 5.3 у нас будет работать, как модуль apache.

Качаем последнюю версию php 5.2 и распаковываем:

cd /tmp
wget http://get.webpatron.net/php/php-5.2.17.tar.gz
tar xzvf php-5.2.17.tar.gz
cd php-5.2.17

Сразу поставим те пакеты, которые нам понадобятся, чтобы не натыкаться на ошибки при сборке:

yum install libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel libX11-devel gd-devel libc-client-devel libmcrypt-devel mysql-devel

Готовим исходники php к сборке:

./configure --prefix=/opt/php52 \
--with-config-file-path=/opt/php52/etc \
--with-config-file-scan-dir=/opt/php52/etc/php.d \
--with-libdir=lib64 \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-curl \
--with-gd \
--with-bz2 \
--with-iconv \
--with-imap \
--with-gettext \
--with-pic \
--with-bz2 \
--with-iconv \
--with-zlib \
--with-jpeg-dir \
--with-png-dir \
--with-kerberos \
--with-imap-ssl \
--enable-cli \
--enable-pdo \
--enable-exif \
--enable-ftp \
--enable-magic-quotes \
--enable-fastcgi \
--enable-discard-path \
--enable-bcmath \
--enable-calendar \
--enable-gd-native-ttf \
--enable-libxml \
--enable-mbstring \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-xml \
--enable-wddx \
--enable-zend-multibyte \
--enable-zip \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-force-cgi-redirect

Компилируем и затем устанавливаем:

make
make install

Теперь прикрутим наше php 5.2 к панели ISPmanager. Для этого мы удалим бинарник php-cgi от php 5.3, и вместо него подсунем от нашего 5.2.

rm /usr/bin/php-cgi
ln -s /opt/php52/bin/php-cgi /usr/bin/php-cgi

На этом в принципе всё. Теперь, если в свойствах www домена выбрать php как модуль apache, то будет версия 5.3. А если выбрать php как CGI, то будет только что установленная нами 5.2.

Можно сделать ещё красивее, чтобы не забыть и не запутаться. Напишем небольшой плагин к панели ISPmanager для выбора версии PHP.

Идём в папку /usr/local/ispmgr/etc и создаём там файл с именем ispmgr_mod_changerphp.xml

В файл вписываем следующее:

<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<lang name="ru">
<messages name="wwwdomain.edit">
<msg name="cgi">Cgi-bin</msg>
<msg name="charset">Кодировка (необяз)</msg>
<msg name="hint_php">Эта опция определяет версию PHP</msg>
<msg name="index">Индексная стр. (необяз)</msg>
<msg name="php">Настройка PHP</msg>
<msg name="phpcgi">PHP v5.2.17 (устаревшая)</msg>
<msg name="phpfcgi">PHP как FastCGI</msg>
<msg name="phpmod">PHP v5.3.28 (рекомендуемая)</msg>
<msg name="phpnone">Нет поддержки PHP</msg>
</messages>
</lang>
</mgrdata>

После чего перезагружаем панель командой:

killall -9 ispmgr

Вот, что в итоге у нас получилось. То, что и было нашей задачей — сделать простой выбор версии php для каждого сайта.

isp4php

Теперь осталось настроить наш php 5.2. Для этого в папке /opt/php52/etc создаём ещё папку php.d и уже в ней, создаём файл php.ini, в который и прописываем необходимые глобальные настройки. Здесь же можно прикрутить и нужную версию zend optimizer, и всё остальное. Также у каждого пользователя на сервере при использовании php 5.2 имеется и собственный php.ini, куда также можно внести настройки для конкретного пользователя.


Оставить комментарий

  • Способы
    Оплаты:
  • visa
  • mastercard
  • qiwi
  • webmoney
  • yandex money
  • sberbank
  • mts bank
  • zpayment
  • liqpay
  • alfabank white
  • paxum e1411320249623
Copyright © 2012 - 2022 WebPatron Ltd. All rights reserved.