Установка PHP 5.2.17 на VestaCP под CentOS. Статьи. wb0.ru - Все для веб-мастера, on-line сервисы

Установка PHP 5.2.17 на VestaCP под CentOS

Если не установлены необходимые инструменты для компилирования php, устанавливаем набор пакетов для разработки:

yum install lemon
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*

Если возникает ошибка вида:

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:

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://wb0.ru/articles/img/php-5.2.17.tar.gz

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

tar zxf php-5.2.17.tar.gz

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

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

Скачиваем и применяем патч безопасности:

wget https://wb0.ru/articles/img/php52-backports-20130717.patch
patch -p1 < php52-backports-20130717.patch

Конфигурируем PHP 5.2.17 с архитектурой amd64:

./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

Для i386:

--with-libdir=lib \

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

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

make && make install

Видим, что и куда установилось:

Wrote PEAR system config file at: /opt/php-5.2.17/etc/pear.conf
You may want to add: /opt/php-5.2.17/lib/php to your php.ini include_path
Installing PDO headers:          /opt/php-5.2.17/include/php/ext/pdo/

Копируем php.ini:

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

Проверяем версию установленного интерпретатора PHP:

/opt/php-5.2.17/bin/php-cgi -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

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

Первый файл:

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

Содержимое:

  1. #!/bin/shell
  2. # Adding php wrapper
  3. user="$1"
  4. domain="$2"
  5. ip="$3"
  6. home_dir="$4"
  7. docroot="$5"
  8.  
  9. wrapper_script="#!/bin/sh
  10. export PHPRC=/opt/php-5.2.17/lib/
  11. export PHP_FCGI_MAX_REQUESTS=1000
  12. export PHP_FCGI_CHILDREN=20
  13. exec /opt/php-5.2.17/bin/php-cgi
  14. "
  15. wrapper_file="$home_dir/$user/web/$domain/cgi-bin/fcgi-starter"
  16.  
  17. echo "$wrapper_script" > $wrapper_file
  18. chown $user:$user $wrapper_file
  19. chmod -f 751 $wrapper_file
  20.  
  21. exit 0

Второй файл:

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

Содержимое:

  1. <VirtualHost %ip%:%web_port%>
  2.  
  3.     ServerName %domain_idn%
  4.     %alias_string%
  5.     ServerAdmin %email%
  6.     DocumentRoot %docroot%
  7.     ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  8.     Alias /vstats/ %home%/%user%/web/%domain%/stats/
  9.     Alias /error/ %home%/%user%/web/%domain%/document_errors/
  10.     SuexecUserGroup %user% %group%
  11.     CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  12.     CustomLog /var/log/%web_system%/domains/%domain%.log combined
  13.     ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  14.     <Directory %docroot%>
  15.         AllowOverride All
  16.         Options +Includes -Indexes +ExecCGI
  17.         <Files *.php>
  18.             SetHandler fcgid-script
  19.         </Files>
  20.         FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
  21.     </Directory>
  22.     <Directory %home%/%user%/web/%domain%/stats>
  23.         AllowOverride All
  24.     </Directory>
  25.  
  26.     Include %home%/%user%/conf/web/%web_system%.%domain%.conf*
  27.  
  28. </VirtualHost>

Третий файл:

vi /usr/local/vesta/data/templates/web/httpd/phpfcgid52.stpl

Содержимое:

  1. <VirtualHost %ip%:%web_ssl_port%>
  2.  
  3.     ServerName %domain_idn%
  4.     %alias_string%
  5.     ServerAdmin %email%
  6.     DocumentRoot %sdocroot%
  7.     ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  8.     Alias /vstats/ %home%/%user%/web/%domain%/stats/
  9.     Alias /error/ %home%/%user%/web/%domain%/document_errors/
  10.     SuexecUserGroup %user% %group%
  11.     CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  12.     CustomLog /var/log/%web_system%/domains/%domain%.log combined
  13.     ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  14.     <Directory %sdocroot%>
  15.         SSLRequireSSL
  16.         AllowOverride All
  17.         Options +Includes -Indexes +ExecCGI
  18.         <Files *.php>
  19.             SetHandler fcgid-script
  20.         </Files>
  21.         FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
  22.     </Directory>
  23.     <Directory %home%/%user%/web/%domain%/stats>
  24.         AllowOverride All
  25.     </Directory>
  26.     php_admin_value open_basedir none
  27.     SSLEngine on
  28.     SSLVerifyClient none
  29.     SSLCertificateFile %ssl_crt%
  30.     SSLCertificateKeyFile %ssl_key%
  31.     %ssl_ca_str%SSLCertificateChainFile %ssl_ca%
  32.  
  33.     Include %home%/%user%/conf/web/s%web_system%.%domain%.conf*
  34.  
  35. </VirtualHost>

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

chmod +x /usr/local/vesta/data/templates/web/httpd/phpfcgid52.sh && \
chmod +x /usr/local/vesta/data/templates/web/httpd/phpfcgid52.tpl && \
chmod +x /usr/local/vesta/data/templates/web/httpd/phpfcgid52.stpl

Перезапускаем Apache:

service httpd restart

Входим в VestaCP и переходим в раздел "Пакеты" (https://xxx.xxx.xxx.xxx:8083/list/package/).

Добавляем новый пакет php52 с шаблоном phpfcgid52.

При создании нового пользователя или редактировании существующего указываем созданный пакет php52.

Если, выбрав пакет php52, при заходе на сайт выдается ошибка сервера, меняем в phpfcgid52.tpl

  1. <Directory %docroot%>
  2.         AllowOverride All
  3.         Options +Includes -Indexes +ExecCGI
  4.         <Files *.php>
  5.           SetHandler fcgid-script
  6.         </Files>
  7.         FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
  8.     </Directory>

на

  1. <Directory %docroot%>
  2.         AllowOverride All
  3.         Options +Includes -Indexes +ExecCGI
  4.     </Directory>
  5.     <FilesMatch "\.php">
  6.         SetHandler application/x-httpd-php5
  7.     </FilesMatch>
  8. ScriptAlias /php52-cgi %home%/%user%/web/%domain%/cgi-bin/fcgi-starter
  9. Action application/x-httpd-php5 /php52-cgi
  10. AddHandler application/x-httpd-php5 .php

Дата публикации: 25.10.2017
wb0.ru

Статьи по теме:

   Ваш псевдоним:
Ваш комментарий:

Календарь событий


Новости Интернет


Поиск





Последний пересчет

тИЦ:07 Окт 15
PR:09 Дек 13

Наши партнеры

wservices.ru - регистрация доменов, Whois-сервисы Смайлы на все случаи жизни


 
Copyright © 2006-2018, wb0.ru