PHP7: Снова в путь!

Пару месяцев назад я писал пост «PHP7: Экономим ресурсы, выигрываем в скорости» по обновлению на php7. Если не читали, то рекомендую ознакомиться с подготовительным этапом, а саму установку делать уже по обновленному мануалу.

Что поменялось? Во первый упростилась процедура сборки расширений/дополнений к php. Во вторых, теперь мы можем иметь на сервере несколько версий php, которые не будут мешать друг другу.

Установка php7 на centos 6

1. Я сохраню список установленных пакетов:

yum list installed | grep php > /tmp/php70_installed

2. Удаляем старые дистрибутивы:

yum remove php*

3. Ставим/Обновляем Epel и Remi:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

У вас должны поставиться php репозитария:

ls /etc/yum.repos.d/ | grep php
remi-php54.repo
remi-php70.repo
remi-php71.repo

4. Установка:

yum -y install php70-build php70-php php70-php-cli php70-php-common php70-php-devel php70-php-fpm php70-php-gd
yum -y install php70-php-imap php70-php-intl php70-php-json php70-php-mbstring php70-php-mcrypt php70-php-mysqlnd 
yum -y install php70-php-opcache php70-php-pdo php70-php-pecl-gearman php70-php-pecl-geoip php70-php-pecl-igbinary 
yum -y install php70-php-pecl-memcached php70-php-pecl-msgpack php70-php-pecl-zip php70-php-snmp php70-php-xml php70-runtime

Список пакетов индивидуален и на вашем проекте может отличаться от моего. Доступный список всегда можно посмотреть при помощи команды:

yum list available | egrep "php[567]" | more

5. Проверка:

scl enable php70 'php -v'
PHP 7.0.16 (cli) (built: Feb 14 2017 16:07:50) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.16, Copyright (c) 1999-2017, by Zend Technologies

6. Делаем симлинк для работы консольных приложений:

sudo ln -s /usr/bin/php70 /usr/bin/php

7. Я работаю с php через сокеты, поэтому меняю конфигурационный файл под свои требования.

Обратите внимания на то, что конфигурация теперь живет по новому пути!

/bin/sed -ie "s/127.0.0.1:9000/\/var\/run\/php7-fpm.sock/g"  /etc/opt/remi/php70/php-fpm.d/www.conf
/bin/sed -ie "s/;listen.mode = 0660/listen.mode = 0666/g"  /etc/opt/remi/php70/php-fpm.d/www.conf

8. Стартуем демона и прописываем его в «автозагрузку»:

chkconfig php70-php-fpm on
service php70-php-fpm start

9. Проверяем путь сокета в nginx.

upstream php-fpm {
    server unix:/var/run/php7-fpm.sock;
}

По времени процедура обновления занимает также примерно 5-10 минут. Для тех, кто все еще думает, ниже статистика по изменению времени загрузки страниц на достаточно посещаемом проекте:

Изменение времени загрузки при миграции на php7

Вы можете оставить комментарий ниже.