PHP представляет собой серверный язык, который широко используется для веб-разработки. Обновление PHP позволяет выполнять в три раза больше запросов, одновременно повысив безопасность сайта.

Обновление PHP на сервере

Ubuntu

Чтобы обновить PHP, на операционной системе Ubuntu на ядре Linux должна стоять старая версия — PHP 5. В случае использования Apache применяется модуль mod_php, для Nginx — PHP-FPM.

Помимо этого, перед установкой следует убедиться в том, что предварительно создан пользователь без root-прав, который может выполнять команды sudo.

Добавление пакетов PPA

В первую очередь необходимо добавить персональные пакеты архивов (PPA) — пакеты, обычно создающиеся в серверах-хранилищах (репозиториях). Найти бета-версии и модифицированные сборки можно на сайте launchpad.net. PPA для последней версии PHP можно найти у пользователя Ondřej Surý. 

sudo apt-get install software-properties-common python-software-properties
После авторизации в системе добавьте пакеты в APT-утилиты ОС с помощью команды:
sudo add-apt-repository ppa:ondrej/php

Добавление репозитория

Далее, чтобы установка новой версии PHP прошла без проблем, необходимо обновить кэш локального пакета через sudo apt-get update.

Модуль Apache

Перед установкой обновляются все старые пакеты, исключая php5-mysql, который будет удален. Все пользователи MySQL должны повторно добавить двухсторонние биндинги PHP:

sudo apt-get install php7.0-mysql

Установка PHP производится с помощью команды:

sudo apt-get install php7.0

Если ранее пользователь как-то изменял конфигурационные файлы предыдущей версии, их можно будет найти в директории /etc/php5/. Новая конфигурация находится по адресу /etc/php/7.0.

Обновление PHP-FPM для Nginx

Для начала устанавливается новый пакет PHP-FPM командой

sudo apt-get install php7.0-fpm

В случае с MySQL необходимо повторить ту же операцию, что и пользователям Apache — обновить биндинги.

Пути сокетов у Nginx

Сервер использует сокет, чтобы взаимодействовать с PHP-FPM. По умолчанию новая версия языка использует указанный сокетами путь /var/run/php/php7.0-fpm.sock.

Процесс обновления

  1. В файле конфигурации default необходимо найти блок, который начинается с location ~ \.php$ { и в нем строку fastcgi_pass unix:/var/run/php5-fpm.sock;. Ее нужно изменить на unix:/var/run/php/php7.0-fpm.sock.

  1. Выходим из редактора и сохраняем файл. Эту процедуру необходимо провести для всех виртуальных серверов, которые располагаются в директории /etc/nginx/sites-enabled.

  2. После завершения операции сервер перезагружается командой sudo service nginx restart.

Тестирование

Проверить PHP можно с помощью тестового файла, который нужно будет открыть или создать, если его нет. Для его создания подойдет редактор nano или любой другой. Открываем файл info.php в корневом каталоге.

Путь в Apache:

sudo nano /var/www/html/info.php

Для Nginx:

sudo nano /usr/share/nginx/html/info.php

Туда необходимо скопировать следующий код: <?php phpinfo(); ?>

<?php 
    phpinfo(); 
?>

Выходим из редактора и сохраняем файл. Чтобы проверить версию PHP, вводим в браузере адрес http://домен_или_IP/info.php. Информация появится на экране.

Если что-то работает некорректно, необходимо убедиться в правильности действий. Например, обновление в панели Vesta требует предварительного ввода следующей команды:

# git clone https://github.com/petranikin/mgrvphp.git 

# cd mgrvphp

# bash mgrvphp

А уже потом ввести версию PHP для начала процесса.

CentOS

Для CentOS 7 инструкция несколько отличается:

  1. В первую очередь необходимо добавить репозиторий EPEL с помощью команды yum install epel-release.
    Команда yum install epel-release
    добавить репозиторий EPEL

  2. После этого пользуемся комбинацией rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm, и только после этого обновляем PHP через команду yum install php70w.
    Команда на установку php
    Результат обновления PHP

Debian

Перед установкой новой версии PHP на Debian необходимо обновить все текущее программное обеспечение. Сделать это можно с помощью команд:

sudo apt-get update

sudo apt-get upgrade

Как и с предыдущими случаями, в первую очередь необходимо включить PPA. Чтобы сделать это, импортировав ключ подписи, используем команду:

wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

Если после этого выявляется, что в системе не хватает некоторых важных пакетов, их необходимо добавить с помощью sudo apt-get install ca-certificates apt-transport-https.

Чтобы начать установку PHP, запустите процесс командой:

apt-y install php php-common

Проверить установленную версию можно через php -v.

Результат установки

Обновление для популярных CMS

Обновление PHP для CMS площадок обуславливается двумя факторами.

  • Увеличением скорости работы. По сравнению со старыми версиями новая будет работать в 3-4 раза быстрее, что позволяет повысить ранжирование сайта в поиске;

  • Повышением безопасности. Снижаются риски взлома, причинения ущерба репутации сайта.

Как сменить версию PHP в ISPmanager, читайте в этой статье.

WordPress

Для WordPress обновление PHP требуется по упомянутым ранее причинам. Если вдруг желания обновлять его нет, следует помнить, что платформа хорошо работает даже с версией 5.6.20, то есть располагает отличной обратной совместимостью. Поэтому, нужно ли обновлять PHP, нужно решать индивидуально.

Что сделать перед обновлением

  • Резервное копирование сайта, обеспечивающее возможность возврата на старую версию без потерь.

  • Обновление WordPress, тем и плагинов — рекомендуется делать регулярно, потом стоит проверить корректную работу сайта.

  • Проверка совместимости с PHP — для этого можно использовать плагин PHP Compatibility Checker.

  • Устранение проблем совместимости — неподходящие плагины и темы придется поменять или попытаться исправить ситуацию, обратившись к их разработчикам.

Чтобы плагины и темы работали нормально после обновления, их разработчики должны иметь хорошую репутацию. Если после обновления PHP не работает сайт, проблема может крыться именно в них. Служба поддержки WordPress не гарантирует такую совместимость с новой версией PHP, поэтому подготовительный этап рекомендуется не пропускать.

Чтобы обновить PHP на WordPress, необходимо открыть настройки хостинга и внести изменения самостоятельно в панели управления или обратиться в техническую поддержку с обращением.

Обновление PHP на сервере - wp

Попросить обновить версию PHP в WordPress можно с помощью обращения, которое предлагает служба поддержки платформы.

Joomla

Для повышения безопасности сайта любая CMS будет рекомендовать обновить PHP. Так, например, в справке Joomla будет написано: «Проект Joomla рекомендует обновить ваш сайт до версии PHP 7.1 или более поздней версии».

Чтобы обновление до последних версий PHP прошло без проблем, необходимо убедиться в том, что на сайте стоит как минимум Joomla 3.5. Иначе система будет работать некорректно.

Самый простой способ обновить версию PHP — обратиться в поддержку хостинга. Зачастую они это делают бесплатно и достаточно быстро. Если же хочется сделать все самому, достаточно перейти в панель управления и начать процедуру в настройках на хостинге.

Остальные способы представлены ниже.

Обновление через .htaccess

Чтобы обновить все таким образом, достаточно создать новый файл в корневом каталоге сайта или отредактировать существующий. Необходимо добавить только одну строчку.

Версия 5.6:

AddHandler application/x-httpd-php56 .php .php5 .php4 .php3

Версия 7.0:

AddHandler application/x-httpd-php70 .php .php5 .php4 .php3

VPS или сервер

Обновить PHP на сервере, если используется Ubuntu 14.04 и ниже, можно с помощью команды:

sudo apt-get upgrade

sudo apt-get dist-upgrade

Для версии 5.6 достаточно использовать sudo apt-get install php5 и после перезапустить сервер.

Для исправной работы версии PHP 7, как и в случае с инструкцией для Ubuntu, потребуется дополнительно обновить mod_php для Apache и PHP-FPM для Nginx соответственно. Порядок действий для этого представлен выше.

Битрикс

Чтобы обновить PHP в веб-окружении Битрикс, необходимо:

  1. Чтобы попасть в меню, подключаемся к серверу по SSH через пользователя с root-правами. Выбираем пункт 1. Manage servers in the pool.

  2. В следующем списке нажимаем на 8. Update PHP and MySQL.

  3. Выбираем Update PHP to version 7.1 и подтверждаем действие, введя «y» («yes»).

  4. Меню отразит задание и его идентификатор, а также статус выполнения.

  5. Чтобы узнать, завершен ли процесс, в основном меню нажимаем 10. Background pool tasks. Должна появиться строка с finished.

После любого обновления некоторые приложения могут перестать работать. Это связано с их версией выпуска. Если они запущены в Marketplace после лета 2016 года, то никаких проблем не возникнет. Более ранние версии имеют другие механизмы защиты, которых может оказаться недостаточно для работы с обновленным PHP.