На самом деле установка довольно проста. В данной заметке речь пойдет о добавлении определенного релиза PHP. По сути создается шаблон.
1. До начала инсталляции как всегда — приводим в порядок hostname. Оно должно соответствовать реальному имени машины
2. До начала сборки PHP 5.2 и установки ПО ОБЯЗАТЕЛЬНО ставим саму панель! Это позволить инсталлировать все необходимые для сборки пакеты. Без них PHP но будет не доставать модулей. Это видно еще на этапе конфигурирования
1 2 3 4 |
yum groupinstall 'Development Tools' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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
1 2 3 4 |
yum --enablerepo=remi,remi-test install mysql-devel |
И дальше по написанному
Создаем папку где будут находиться бинарные файлы
1 2 3 4 |
mkdir /opt/php-5.2.17 |
Создаем папку для загрузки исходников и переходим в нее
1 2 3 4 |
mkdir -p /usr/src/php/ && cd /usr/src/php/ |
Скачиваем архив с исходниками php 5.2.17
1 2 3 4 |
wget -c -t0 http://museum.php.net/php5/php-5.2.17.tar.gz |
Распаковываем архив
1 2 3 4 |
tar zxf php-5.2.17.tar.gz |
Переходим в папку с исходниками
1 2 3 4 |
cd /usr/src/php/php-5.2.17/ |
Скачиваем
1 2 3 4 |
wget http://php52-backports.googlecode.com/files/php52-backports-20130717.patch |
и применяем патч безопасности
1 2 3 |
patch -p1 < php52-backports-20130717.patch |
Кофигурируем
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
./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
Компилируем и устанавливаем
1 2 3 |
make && make install |
Копируем php.ini
1 2 3 4 |
cp /usr/src/php/php-5.2.17/php.ini-recommended /opt/php-5.2.17/lib/php.ini |
Делаем пробный запуск свежеустановленной версии
1 2 3 4 |
/opt/php-5.2.17/bin/php-cgi -v |
Создаем файлы шаблонов
Создаем файл
1 2 3 4 |
vi /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.sh |
Вставляем содержимое
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/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 |
Создаем файл
1 2 3 4 |
vi /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.tpl |
Вставляем содержимое
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<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> |
Создаем файл
1 2 3 4 |
vi /usr/local/vesta/data/templates/web/httpd/phpfcgid_52.stpl |
Вставляем содержимое
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<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> |
Делаем файлы исполняемыми
1 2 3 4 5 6 |
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
1 2 3 4 |
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
Создать нового пользователя или отредактировать существующего, присвоив ему созданный Пакет (Packagу)
http://www.xyberry.com/customer-area/knowledgebase.php?action=displayarticle&id=85
http://www.xyberry.com/customer-area/knowledgebase.php?action=displayarticle&id=84
Спасибо огромное за museum.php.net
Вообще не мог себе приставить что есть такой сайт!!!
Я всё таки смогу перенести один сайт для пхп 5.3 иначе глючит.