Установка второй версии php 5.2 в VestaCP

Задача:

Установка PHP 5.2.17 на VestaCP (Centos 6 x86_64)

Решение:

1) Устанавливаем набор пакетов для разработки

yum groupinstall 'Development Tools'
yum install \
    libxml2-dev* \
    libmhash-dev* \
    libcurl-dev* \
    libpng* \
    libjpeg* \
    libtidy-dev* \
    libxslt-dev* \
    libtool-ltdl-dev* \
    mcrypt \
    libmcrypt-dev* \
    libXpm-dev* \
    libsqlite* \
    mysql-dev* \
    mysql-libs \
    sqlite-dev* \
    freetype-dev* \
    openssl-dev* \
    bzip2-dev* \
    unzip* \
    patch \
    make \
    gcc*
<code>

Если возникает ошибка вида
Error: Package: mysql-devel-5.1.73-3.el6_5.x86_64 (base)
Requires: mysql = 5.1.73-3.el6_5
Installed: mysql-5.5.43-1.el6.remi.x86_64 (@remi)
mysql = 5.5.43-1.el6.remi
Available: mysql-5.1.73-3.el6_5.x86_64 (base)
mysql = 5.1.73-3.el6_5

Выполните установку пакета mysql-devel из репозитория remi
<code> yum --enablerepo=remi,remi-test install mysql-devel 

Создаем папку где будут находиться бинарные файлы

mkdir /opt/php-5.2.17 

Создаем папку для загрузки исходников и переходим в нее

mkdir -p /usr/src/php/ && cd /usr/src/php/ 

Скачиваем архив с исходниками php 5.2.17

wget -c -t0 http://museum.php.net/php5/php-5.2.17.tar.gz 

Распаковываем архив

 tar zxf php-5.2.17.tar.gz 

Переходим в папку с исходниками

 cd /usr/src/php/php-5.2.17/ 

Скачиваем

wget http://php52-backports.googlecode.com/files/php52-backports-20130717.patch  
и применяем патч безопасности
 patch -p1 < php52-backports-20130717.patch 

Кофигурируем

./configure \
    --prefix=/opt/php-5.2.17 \
    --with-config-file-path=/opt/php-5.2.17 \
    --with-libdir=lib64 \
    --with-mysql \
    --with-mysqli \
    --with-sqlite=shared \
    --with-curl \
    --with-gd \
    --with-openssl \
    --with-pdo-mysql=shared --with-pdo-sqlite=shared \
    --with-mcrypt \
    --with-pear \
    --with-pic \
    --with-jpeg-dir \
    --with-png-dir \
    --with-ttf \
    --with-freetype-dir \
    --with-xmlrpc \
    --with-xpm-dir \
    --with-zlib \
    --enable-bcmath \
    --enable-calendar \
    --enable-cli \
    --enable-discard-path \
    --enable-fastcgi \
    --enable-ftp \
    --enable-force-cgi-redirect \
    --enable-gd-native-ttf \
    --enable-libxml \
    --enable-mbstring \
    --enable-pdo=shared \
    --enable-soap \
    --enable-sockets \
    --enable-session \
    --enable-zip \
    --enable-zend-multibyte
для х86
--with-libdir=lib \

параметр =shared указывает на необходимость компилирования отдельного .so для расширения (прим., pdo_mysql.so), который потом при необходимости можно подключить в php.ini

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

 make && make install 

Копируем php.ini

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

Делаем пробный запуск свежеустановленной версии

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

Создаем файлы шаблонов Создаем файл

 vi /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.sh 

Вставляем содержимое

#!/bin/bash
# Adding php wrapper
user="$1"
domain="$2"
ip="$3"
home_dir="$4"
docroot="$5"

wrapper_script="#!/bin/sh
export PHPRC=/opt/php-5.2.17/lib/
export PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_CHILDREN=20
exec /opt/php-5.2.17/bin/php-cgi
"
wrapper_file="$home_dir/$user/web/$domain/cgi-bin/fcgi-starter"

echo "$wrapper_script" > $wrapper_file
chown $user:$user $wrapper_file
chmod -f 751 $wrapper_file

exit 0

Создаем файл

 vi /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.tpl 

Вставляем содержимое

<VirtualHost %ip%:%web_port%>

    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %docroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    SuexecUserGroup %user% %group%
    CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
    CustomLog /var/log/%web_system%/domains/%domain%.log combined
    ErrorLog /var/log/%web_system%/domains/%domain%.error.log
    <Directory %docroot%>
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
        <Files *.php>
            SetHandler fcgid-script
        </Files>
        FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>

    Include %home%/%user%/conf/web/%web_system%.%domain%.conf*

</VirtualHost>
Создаем файл
 vi /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.stpl 

Вставляем содержимое

 <VirtualHost %ip%:%web_ssl_port%>

    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %sdocroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    SuexecUserGroup %user% %group%
    CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
    CustomLog /var/log/%web_system%/domains/%domain%.log combined
    ErrorLog /var/log/%web_system%/domains/%domain%.error.log
    <Directory %sdocroot%>
        SSLRequireSSL
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
        <Files *.php>
            SetHandler fcgid-script
        </Files>
        FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>
    php_admin_value open_basedir none
    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile %ssl_crt%
    SSLCertificateKeyFile %ssl_key%
    %ssl_ca_str%SSLCertificateChainFile %ssl_ca%

    Include %home%/%user%/conf/web/s%web_system%.%domain%.conf*

</VirtualHost>

Делаем файлы исполняемыми

chmod +x /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.sh && \
chmod +x /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.tpl && \
chmod +x /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.stpl
И напоследок перезапускаем Apache
 service httpd restart 

Основная работа сделана, остается:

Войти в VestaCP прим. URL, https://11.22.33.44:8083 или https://test.YOURDOMAIN.TLD:8083 используйте в качестве имени пользователя admin и пароль

Перейти к списку Пакетов (Packages) прим. URL, https://11.22.33.44:8083/list/package/ или https://test.YOURDOMAIN.TLD:8083/list/package/

Добавить новый пакет с Шаблоном Apache (Apache Template) phpfcgid_52

Создать нового пользователя или отредактировать существующего, присвоив ему созданный Пакет (Package)

Смотрите также:


Актуальность: 2015/12/22 12:29