Debian 8, VestaCP и множество жён (PHP)

Из репозитория автоматом установится PHP 5.6, поэтому наша задача установить дополнительно:

PHP 5.3, 5.4, 5.5, 7.0

Все действия производятся под root’ом.

Для начала установим необходимые пакеты:

apt-get build-dep -y php5
apt-get install libonig-dev libmcrypt-dev libreadline-dev

Также нам нужен пакет libt1-dev, который отсутствует в репах debian 8, возьмем его из репов debian 7 wheezy, для этого добавим в /etc/apt/sources.list следующую строку

deb http://ftp.debian.org/debian wheezy main contrib non-free

Затем выполняем:

apt-get update
apt-get install libt1-dev

Затем убираем добавленную строку из /etc/apt/sources.list и затем выполняем:

apt-get update

Создаем каталог для исходников:

mkdir /php/
mkdir /php/src

Сделаем симлинк для freetype

mkdir /usr/include/freetype2/freetype
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h

сделаем симлинк gmp.h в /usr/include/

n -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

на этом подготовка к установке разных версий PHP завершена

Установка PHP 5.3
cd /php/src/
wget -O php-5.3.29.tar.bz2 http://php.net/get/php-5.3.29.tar.bz2/from/this/mirror
tar -xjf php-5.3.29.tar.bz2
cd php-5.3.29
mkdir /php/php53

Выполняется одной командой:

./configure --prefix=/php/php53 \
 --with-config-file-path=/php/php53/etc \
 --with-config-file-scan-dir=/php/php53/etc/conf \
 --with-regex=php \
 --disable-rpath \
 --disable-static \
 --with-pic \
 --with-layout=GNU \
 --enable-calendar \
 --enable-sysvsem \
 --enable-sysvshm \
 --enable-sysvmsg \
 --enable-bcmath \
 --with-bz2 \
 --enable-ctype \
 --with-cdb \
 --with-iconv \
 --enable-exif \
 --enable-ftp \
 --with-gettext \
 --enable-mbstring \
 --with-onig=/usr \
 --with-pcre-regex=/usr \
 --enable-shmop \
 --enable-sockets \
 --enable-wddx \
 --with-libxml-dir=/usr \
 --with-zlib \
 --with-kerberos=/usr \
 --with-openssl=/usr \
 --enable-soap \
 --enable-zip \
 --with-mhash=yes \
 --with-mysql-sock=/var/run/mysqld/mysqld.sock \
 --with-mysql=mysqlnd \
 --with-mysqli=mysqlnd \
 --enable-pdo \
 --with-pdo-mysql=mysqlnd \
 --enable-exif \
 --with-jpeg-dir=/usr \
 --with-png-dir=/usr \
 --with-freetype-dir=/usr \
 --with-t1lib \
 --with-zlib-dir=/usr \
 --with-mcrypt=/usr \
 --with-mhash \
 --with-xsl=/usr \
 --enable-zip \
 --enable-cgi \
 --with-curl \
 --with-gd \
 --enable-pcntl \
 --enable-mbregex \
 --enable-gd-native-ttf \
 --with-libdir=lib64 \
 --enable-dba=shared \
 --with-readline=/usr \
 --enable-simplexml \
 --with-libdir=/lib/x86_64-linux-gnu \
 --with-pspell
make
make install

Скопируем шаблон существующий шаблон phpcgi

cp /usr/local/vesta/data/templates/web/apache2/phpcgi.sh /usr/local/vesta/data/templates/web/apache2/php53.sh
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.stpl /usr/local/vesta/data/templates/web/apache2/php53.stpl
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.tpl /usr/local/vesta/data/templates/web/apache2/php53.tpl

Открываем файл /usr/local/vesta/data/templates/web/apache2/php53.sh и находим там строку

wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'

заменяем на

wrapper_script='#!/php/php53/bin/php-cgi -cphp5-cgi.ini'
Установка PHP 5.4
cd /php/src/
wget -O php-5.4.45.tar.bz2 http://php.net/get/php-5.4.45.tar.bz2/from/this/mirror
tar -xjf php-5.4.45.tar.bz2
cd php-5.4.45
mkdir /php/php54

Выполняется одной командой:

./configure --prefix=/php/php54 \
 --with-config-file-path=/php/php54/etc \
 --with-config-file-scan-dir=/php/php54/etc/conf \
 --with-regex=php \
 --disable-rpath \
 --disable-static \
 --with-pic \
 --with-layout=GNU \
 --enable-calendar \
 --enable-sysvsem \
 --enable-sysvshm \
 --enable-sysvmsg \
 --enable-bcmath \
 --with-bz2 \
 --enable-ctype \
 --with-cdb \
 --with-iconv \
 --enable-exif \
 --enable-ftp \
 --with-gettext \
 --enable-mbstring \
 --with-onig=/usr \
 --with-pcre-regex=/usr \
 --enable-shmop \
 --enable-sockets \
 --enable-wddx \
 --with-libxml-dir=/usr \
 --with-zlib \
 --with-kerberos=/usr \
 --with-openssl=/usr \
 --enable-soap \
 --enable-zip \
 --with-mhash=yes \
 --with-mysql-sock=/var/run/mysqld/mysqld.sock \
 --with-mysql=mysqlnd \
 --with-mysqli=mysqlnd \
 --enable-pdo \
 --with-pdo-mysql=mysqlnd \
 --enable-exif \
 --with-jpeg-dir=/usr \
 --with-png-dir=/usr \
 --with-freetype-dir=/usr \
 --with-t1lib \
 --with-zlib-dir=/usr \
 --with-mcrypt=/usr \
 --with-mhash \
 --with-xsl=/usr \
 --enable-zip \
 --enable-cgi \
 --with-curl \
 --with-gd \
 --enable-pcntl \
 --enable-mbregex \
 --enable-gd-native-ttf \
 --with-libdir=lib64 \
 --enable-dba=shared \
 --enable-intl \
 --with-readline=/usr \
 --enable-simplexml \
 --with-libdir=/lib/x86_64-linux-gnu \
 --with-pspell
make
make install

Скопируем шаблон существующий шаблон phpcgi

cp /usr/local/vesta/data/templates/web/apache2/phpcgi.sh /usr/local/vesta/data/templates/web/apache2/php54.sh
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.stpl /usr/local/vesta/data/templates/web/apache2/php54.stpl
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.tpl /usr/local/vesta/data/templates/web/apache2/php54.tpl

Открываем файл /usr/local/vesta/data/templates/web/apache2/php54.sh и находим там строку

wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'

заменяем на

wrapper_script='#!/php/php54/bin/php-cgi -cphp5-cgi.ini'
Установка PHP 5.5
cd /php/src/
wget -O php-5.5.37.tar.bz2 http://php.net/get/php-5.5.37.tar.bz2/from/this/mirror
tar -xjf php-5.5.37.tar.bz2
cd php-5.5.37
mkdir /php/php55

Выполняется одной командой:

./configure --prefix=/php/php55 \
 --with-config-file-path=/php/php55/etc \
 --with-config-file-scan-dir=/php/php55/etc/conf \
 --with-regex=php \
 --disable-rpath \
 --disable-static \
 --with-pic \
 --with-layout=GNU \
 --enable-calendar \
 --enable-sysvsem \
 --enable-sysvshm \
 --enable-sysvmsg \
 --enable-bcmath \
 --with-bz2 \
 --enable-ctype \
 --with-cdb \
 --with-iconv \
 --enable-exif \
 --enable-ftp \
 --with-gettext \
 --enable-mbstring \
 --with-onig=/usr \
 --with-pcre-regex=/usr \
 --enable-shmop \
 --enable-sockets \
 --enable-wddx \
 --with-libxml-dir=/usr \
 --with-zlib \
 --with-kerberos=/usr \
 --with-openssl=/usr \
 --enable-soap \
 --enable-zip \
 --with-mhash=yes \
 --with-mysql-sock=/var/run/mysqld/mysqld.sock \
 --with-mysql=mysqlnd \
 --with-mysqli=mysqlnd \
 --enable-pdo \
 --with-pdo-mysql=mysqlnd \
 --enable-exif \
 --with-jpeg-dir=/usr \
 --with-png-dir=/usr \
 --with-freetype-dir=/usr \
 --with-t1lib \
 --with-zlib-dir=/usr \
 --with-mcrypt=/usr \
 --with-mhash \
 --with-xsl=/usr \
 --enable-zip \
 --enable-cgi \
 --with-curl \
 --with-gd \
 --enable-pcntl \
 --enable-mbregex \
 --enable-gd-native-ttf \
 --with-libdir=lib64 \
 --enable-dba=shared \
 --enable-intl \
 --with-readline=/usr \
 --enable-simplexml \
 --with-libdir=/lib/x86_64-linux-gnu \
 --with-pspell
make
make install

Скопируем шаблон существующий шаблон phpcgi

cp /usr/local/vesta/data/templates/web/apache2/phpcgi.sh /usr/local/vesta/data/templates/web/apache2/php55.sh
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.stpl /usr/local/vesta/data/templates/web/apache2/php55.stpl
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.tpl /usr/local/vesta/data/templates/web/apache2/php55.tpl

Открываем файл /usr/local/vesta/data/templates/web/apache2/php55.sh и находим там строку

wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'

заменяем на

wrapper_script='#!/php/php55/bin/php-cgi -cphp5-cgi.ini'
Установка PHP 7.0
cd /php/src/
wget -O php-7.0.13.tar.bz2 http://php.net/get/php-7.0.13.tar.bz2/from/this/mirror
tar -xjf php-7.0.13.tar.bz2
cd php-7.0.13

Выполняется одной командой:

./configure --prefix=/php/php7 \
 --with-config-file-path=/php/php7/etc \
 --with-config-file-scan-dir=/php/php7/etc/conf \
 --enable-mbstring \
 --enable-zip \
 --enable-bcmath \
 --enable-pcntl \
 --enable-ftp \
 --enable-exif \
 --enable-calendar \
 --enable-sysvmsg \
 --enable-sysvsem \
 --enable-sysvshm \
 --enable-wddx \
 --with-curl \
 --with-mcrypt \
 --with-iconv \
 --with-gmp \
 --with-pspell \
 --with-gd \
 --with-jpeg-dir=/usr \
 --with-png-dir=/usr \
 --with-zlib-dir=/usr \
 --with-xpm-dir=/usr \
 --with-freetype-dir=/usr \
 --with-t1lib=/usr \
 --enable-gd-native-ttf \
 --enable-gd-jis-conv \
 --with-openssl \
 --with-mysql=/usr \
 --with-pdo-mysql=/usr \
 --with-gettext=/usr \
 --with-zlib=/usr \
 --with-bz2=/usr \
 --with-recode=/usr \
 --with-mysqli=/usr/bin/mysql_config
make
make install

Скопируем шаблон существующий шаблон phpcgi

cp /usr/local/vesta/data/templates/web/apache2/phpcgi.sh /usr/local/vesta/data/templates/web/apache2/php7.sh
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.stpl /usr/local/vesta/data/templates/web/apache2/php7.stpl
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.tpl /usr/local/vesta/data/templates/web/apache2/php7.tpl

Открываем файл /usr/local/vesta/data/templates/web/apache2/php7.sh и находим там строку

wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'

заменяем на

wrapper_script='#!/php/php7/bin/php-cgi -cphp5-cgi.ini'

С установкой PHP закончено.

Для пользовательских настроек пхп в папке каждого сайта нужно создать файл:

/home/{пользователь}/web/{домен}/cgi-bin/php5-cgi.ini

После этого в настройках web домена появятся добавленные версии PHP

select_php_vestacp_debian8[1].png

Posted in Записки on авг 31, 2017