Ставим PHP 5.6 на сервер с VestaCP

Winter ulsk

Всем привет!

Пишу данный пост дабы не самому не забыть как все это быстро провернуть.
Итак, в наличии есть сервер на CentOS 6.7 с установленной на него VestaCP. Там в комплекте идет уже далеко не самый свежий PHP из ветки 5.4.
Сейчас я покажу вам как быстро поставить PHP 5.6 со всем необходимым и включить его из панели.

1. Собираем PHP

cd /opt

wget http://ua2.php.net/get/php-5.6.29.tar.gz/from/this/mirror

tar zxf mirror

cd /opt/php-5.6.29/

yum install libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel libXpm-devel freetype-devel libmcrypt-devel readline-devel libtidy-devel

yum install --enablerepo remi mysql-devel

./configure --prefix=/usr/local/php-5.6.29 --with-config-file-path=/usr/local/php-5.6.29 --with-config-file-scan-dir=/usr/local/php-5.6.29/conf.d --with-gd --with-jpeg-dir --with-freetype-dir --with-png-dir --with-xpm-dir --enable-gd-native-ttf --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-mysql-sock --with-pdo-mysql=mysqlnd --with-openssl --with-zlib --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd-native-ttf --enable-gd-jis-conv --with-iconv-dir --with-gettext --enable-mbstring --with-mcrypt --with-mhash --with-readline --enable-soap --enable-sockets --with-pdo-sqlite --enable-wddx --with-xmlrpc --enable-zip --with-kerberos --with-tidy --with-curl --with-libdir=lib64

make

make test

make install

cd /usr/local/php-5.6.29

mkdir conf.d

touch conf.d/my.ini - сюда будем добавлять свои директивы

Мой пример my.ini

date.timezone = Europe/Moscow
mbstring.func_overload = 2
mbstring.internal_encoding = "utf-8"

2. Подключаем новый php в панели

Для этого нам нужно создать новый wrapper и затем создать пакет в панели который использует этот wrapper.

cd /usr/local/vesta/data/templates/web/httpd

cp phpfcgid.sh phpfcgid56.sh

----------------------------

vim phpfcgi56.sh

--- и тут меняем PHPRC на новый путь ---

PHPRC=/usr/local/php-5.6.29/lib

--- меняем exec на новый путь ---

exec  /usr/local/php-5.6.29/bin/php-cgi

----------------------------

Потом копируем шаблоны

cp phpfcgid.stpl phpfcgid56.stpl

cp phpfcgid.tpl phpfcgid56.tpl

chmod +x phpfcgid56.*

service httpd restart

Затем заходим в панельку под админом, идем в «Пакеты» и создаем там новый пакет (видим что появился новый wrapper - phpfcgid56):

Vesta new package

Создаем нового пользователя с новым пакетом:

Vesta new user

Потом создаем у него новый хост, кидаем туда скрипт с phpinfo() и видим что все круто:

Vesta php 5.6

Вот собственно и все.