Бывает что какому нибудь скрипту для нормальной его работы требуется PHP определённой версии. А так как по дефолту при установке хостинг панели ISPConfig 3 устанавливается только одна версия PHP 5.3 то желательно установить недостающие версии PHP 5.2 и 5.4. Сделать это можно довольно просто руководствуясь описанием ниже.

Начнём с установки пакетов необходимых для сборки PHP. Соединяемся с сервером по SSH и выполняем команду:

aptitude install build-essential libapache2-mod-fastcgi build-dep php5 libfcgi-dev libfcg libxml2-dev libbz2-dev libcurl3-dev libjpeg62-dev libpng12-dev libc-client-dev libmcrypt-dev libmhash-dev libmysqlclient-dev libpq-dev libxpm-dev libfreetype6-dev

 После этого можно приступать к сборке PHP версии 5.2. Для этого выполняем серию команд:

mkdir /opt/php-5.2.17
mkdir -p /usr/src/iserver/ && cd /usr/src/iserver/
wget -c -t0 http://ua1.php.net/distributions/php-5.2.17.tar.bz2
tar jxf php-5.2*tar.bz2
cd /usr/src/iserver/php-5.2.17/

 Следующая команда запустит конфигурирование PHP 5.2.17

./configure \
--prefix=/opt/php-5.2.17 \
--with-config-file-path=/opt/php-5.2.17 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl=/usr/bin \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--enable-cli \
--enable-fastcgi \
--enable-discard-path \
--enable-force-cgi-redirect \
--enable-cgi

 После окончания конфигурирования запускаем сборку и установку командами:

make
make install

 Далее необходимо создать конфигурационный файл php.ini Для этого выполняем команду:

cp /usr/src/iserver/php-5.2.17/php.ini-recommended /opt/php-5.2.17/lib/php.ini

 Проверяем версию интерпретатора PHP

/opt/php-5.2.17/bin/php -v

 В ответе должны видеть:

PHP 5.2.17 (cli) (built: Mar 20 2013 10:32:00)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

 Теперь приступим к сборке и установке PHP 5.4.13. Выполним команды:

mkdir /opt/php-5.4.13
mkdir -p /usr/src/iserver/ && cd /usr/src/iserver/
wget -c -t0 http://ua1.php.net/distributions/php-5.4.13.tar.bz2
tar jxf php-5.4*tar.bz2
cd /usr/src/iserver/php-5.4.13/

 Запуск конфигурирования:

./configure \
--prefix=/opt/php-5.4.13 \
--with-config-file-path=/opt/php-5.4.13 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl=/usr/bin \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--enable-cli \
--enable-fastcgi \
--enable-discard-path \
--enable-force-cgi-redirect \
--enable-cgi \
--enable-fpm

 Запускаем установку:

make
make install

 Создаём файл php.ini

cp /usr/src/iserver/php-5.4.13/php.ini-production /opt/php-5.4.13/lib/php.ini

 На этом работа в консоли закончена. Далее необходимо добавить установленные версии PHP в панели ISPConfig 3. Заходим в панель под администратором, переходим Система - Addition PHP Versions нажимаем кнопку Add new PHP version. Заполняем поле PHP Name: php-5.2.17

После этого переходим во вкладку FastCGI Setting, заполняем поля:

  • Path to the PHP FastCGI binary: /opt/php-5.2.17/bin/php-cgi
  • Path to the php.ini directory: /opt/php-5.2.17/lib

Сохраняем изменения.

Далее по такому же принципу добавляем PHP 5.4.13 прописывая в поле PHP Name: php-5.4.13

Во вкладке FastCGI Setting прописываем:

  • Path to the PHP FastCGI binary: /opt/php-5.4.13/bin/php-cgi
  • Path to the php.ini directory: /opt/php-5.4.13/lib

 

Незабываем сохранить изменения. После этих манипуляций Система -  Addition PHP Versions будет выглядеть как на скриншоте:

 

Теперь проверим в работе установленные версии PHP. Зайдём в панель под учётной записью пользователя, выберем любой домен и в настройках сменим версию PHP на php-5.2.17, сохраним изменения.

Теперь в корень сайта на выбраном домене по FTP закачаем файл info.php. Обратимся к нему http://ваш-домен/info.php

Скачать файл - info.php

Выведется страница с версией PHP как на скриншоте.

Теперь проверим версию 5.4. Возвращаемся в панель, в настройках выбираем php-5.4.13. Сохраняем изменения. Через пару минут изменения вступят в силу. В браузере обновляем страницу и видим что версия PHP теперь другая.

Для возвращения на дефолтную версию 5.3.3 необходимо в списке выбрать Default и сохранить изменения.

Внимание! Если вы всё сделали правильно но у клиентов по прежнему нет возможности выбора версии PHP то необходимо установить пачт для панели ISPConfig 3. Для этого в консоли (под рутом) выполняем команды:

cd /usr/local/ispconfig/server/scripts
wget http://www.ispconfig.org/downloads/ispconfig_patch
chmod 700 ispconfig_patch
chown root:root ispconfig_patch
ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch

ispconfig_patch

 

 И на запрос скрипта вводим id патча:

3053_phpversion

 Соглашаемся выбирая y и нажимая Enter. После применения этого патча выбор версий у клиентов будет работать.

Добавить комментарий


cooltext1694911629.png