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.
Процесс обновления
-
В файле конфигурации default необходимо найти блок, который начинается с location ~ \.php$ { и в нем строку fastcgi_pass unix:/var/run/php5-fpm.sock;. Ее нужно изменить на unix:/var/run/php/php7.0-fpm.sock.
-
Выходим из редактора и сохраняем файл. Эту процедуру необходимо провести для всех виртуальных серверов, которые располагаются в директории /etc/nginx/sites-enabled.
-
После завершения операции сервер перезагружается командой 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 инструкция несколько отличается:
-
В первую очередь необходимо добавить репозиторий EPEL с помощью команды yum install epel-release.
-
После этого пользуемся комбинацией rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm, и только после этого обновляем PHP через команду yum install php70w.
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 в 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 в веб-окружении Битрикс, необходимо:
-
Чтобы попасть в меню, подключаемся к серверу по SSH через пользователя с root-правами. Выбираем пункт 1. Manage servers in the pool.
-
В следующем списке нажимаем на 8. Update PHP and MySQL.
-
Выбираем Update PHP to version 7.1 и подтверждаем действие, введя «y» («yes»).
-
Меню отразит задание и его идентификатор, а также статус выполнения.
-
Чтобы узнать, завершен ли процесс, в основном меню нажимаем 10. Background pool tasks. Должна появиться строка с finished.
После любого обновления некоторые приложения могут перестать работать. Это связано с их версией выпуска. Если они запущены в Marketplace после лета 2016 года, то никаких проблем не возникнет. Более ранние версии имеют другие механизмы защиты, которых может оказаться недостаточно для работы с обновленным PHP.