В данной статье расскажем, как изменить версию PHP, и рассмотрим сразу несколько вариантов. Среди них, скорее всего, есть и ваш случай:
Важно! Необходимо использовать только подходящий для вашего случая вариант смены версии PHP. Например, не стоит пользоваться способом для серверов без панели управления, если на вашем сервере установлена ispmanager или используются отличные от LAMP/LEMP конфигурации веб-сервера.
На сервере с панелью управления ispmanager
В данном случае версии переключаются довольно просто, и в стандартной установке ispmanager уже установлены несколько альтернативных версий.
В разделе Сайты выберите сайт и нажмите сверху Редактировать — Изменить:
Раскрываем вкладку Обработчик (PHP) и в пункте Версия PHP выбираем нужную:
Затем нажмите внизу кнопку Сохранить, и на этом смена версии будет завершена, сайт начнет работать на выбранной версии.
Если в списке нет нужной вам версии, то ее можно установить в разделе Настройки — Настройки PHP:
Выбираете нужную вам версию и нажимаете сверху Установить.
Потребуется какое-то время на установку. Когда значок в графе Состояние изменится на зеленую галочку, установка будет завершена и свежеустановленная версия появится в списке всех альтернативных версий. Теперь версию для сайта можно переключить способом, описанным выше.
На сервере с окружением Bitrix-env (Битрикс: Веб-окружение)
При авторизации по SSH с пользователем root к VDS с оболочкой Bitrix-env можно увидеть стартовое меню:
В данном меню в поле выбора вводим 1 и нажимаем Enter.
Откроется следующее меню, где необходимо выбрать пункт 8:
В новом окне меню будет предложено ввести 2 варианта ответа:
- all — изменить версию для всех сайтов;
- <hostname> — изменить версию только для сайта, который вы укажете вместо слова hostname, в нашем примере это testpanel.fvds.ru или testbitrix.fvds.ru:
Мы выберем вариант all.
В нашем примере в таблице в колонке PHP у сайтов установлена версия PHP 7.4.33.
Меню нам предложит следующие варианты:
Upgrade PHP
Downgrade PHP
Первый вариант позволит нам повысить версию PHP, второй — понизить.
Выберем в нашем случае более разумный вариант — повысить версию PHP до более актуальной, введя 1.
После этого потребуется выбрать, до какой версии повысить, в нашем случае варианты:
- Update PHP to version 8.1
- Update PHP to version 8.0
Выберем вновь 1-ый вариант.
Далее будет задан подтверждающий вопрос «Please confirm you want to update (Y|N)», вводим Y (Yes) и нажимаем Enter.
После чего запустится процесс обновления версии PHP, который займет некоторое время. Процесс обновления версии можно считать завершенным, когда, зайдя повторно в меню изменения версий, вы увидите в таблице в колонке PHP уже новую версию, в нашем случае — 8.1.
Либо можно просто выйти из меню и по прошествии времени на установку новой версии ввести команду:
и увидеть, что версия изменена:
Если это окажется слишком высокой версией PHP для вашего сайта, можно её понизить. Для этого вернитесь в меню командой sh /root/menu.sh
, пройдите вновь по пунктам меню 1 — 8 — all — 2, на финальном шаге выберите пункт Downgrade PHP, до какой версии понизить и подтвердите операцию смены версии.
На сервере без панели управления
Для Debian/Ubuntu:
Сначала проверьте текущую версию PHP, введя следующую команду:
Если у вас версия PHP 7.4 или ниже, вы можете обновиться, например, до PHP 8.0:
Для этого установим необходимое ПО и репозиторий.
Обновляем список пакетов с учётом новых репозиториев командой:
Затем установим PHP 8.0 командой:
После этого следует установить часто используемые расширения PHP 8.0. Полный текст команды будет зависеть от необходимых вам расширений, но она может выглядеть, например, так:
Теперь необходимо переключить на новую версию PHP модуль веб-сервера.
В случае, если у вас Apache:
Сначала отключаем старую версию командой:
Потом включаем новую версию PHP командой:
Не забудьте, что у нас в примере смена с версии «7.4» на «8.0», в вашем случае исходная и новая версии могут быть другие, установите в командах соответствующие значения для вашей ситуации.
Для применения конфигурации, необходимо перезапустить Apache командой:
В случае, если у вас Nginx:
Мы рассмотрим переключение только для варианта, когда обработкой PHP занимается PHP-fpm (рецепт LEMP).
Файл конфигурации может находиться по адресу /etc/nginx/sites-available/default.conf
или /etc/nginx/sites-available/site.ru.conf
, или в другом месте в зависимости от ваших настроек.
Найдите блок кода, который выглядит следующим образом:
Вам нужно заменить php7.4-fpm.sock на php8.0-fpm.sock, чтобы использовать новую версию PHP:
Этот параметр указывает Nginx обрабатывать файлы PHP с использованием PHP 8.0.
Чтобы применить изменения, вам необходимо перезапустить Nginx и PHP-FPM:
Для СentOS 7:
Версия PHP, доступная из стандартного репозитория CentOS 7, устарела, по этой причине нам необходимо установить сторонний репозиторий пакетов, чтобы получить более актуальную версию PHP.
Remi — популярный репозиторий, предоставляющий самые последние версии PHP для серверов CentOS.
Установим репозиторий Remi для CentOS 7 командой:
После завершения установки вам нужно будет запустить команду, чтобы включить репозиторий, содержащий нужную вам версию PHP. Чтобы проверить, какие версии PHP доступны в репозитории Remi, запустите команду:
Вы увидите подобный результат:
В этой статье мы установим PHP 7.4, которая на данный момент является достаточно стабильной и всё ещё актуальной версией PHP. Затем, чтобы показать как можно использовать репозиторий Remi, перейдем с версии 7.4 на 8.0.
Итак, чтобы включить правильный пакет Remi для установки PHP 7.4, сначала нужно установить yum-config-manager, он входит в yum-utils, что устанавливается командой:
Затем включаем ветку репозитория с версией 7.4:
Теперь нужно посмотреть, какие пакеты со стандартной версией php 5.4 сейчас установлены. Можно использовать команду yum list installed | grep php
или более удобную для копирования вывода команду:
Получим примерно такой список (у вас может отличаться, особенно на версии PHP 5.4):
Выделяем его, копируем и вставляем в команду удаления пакетов. Итого должно получиться примерно так (у вас может отличаться):
Теперь заново ставим все удаленные пакеты, но так как мы сменили репозиторий, пакеты будут устанавливаться уже другой версии:
Список пакетов может отличаться и зависит от необходимых вам расширений (модулей) PHP. Если требуется еще какой-то, просто добавьте в конец строки php-extensionname, где extensionname — это название расширения PHP, либо вставьте еще раз список, который использовали для удаления пакетов.
Теперь можем проверить, что установилась нужная версия PHP:
В случае, если у вас установлен Apache, достаточно перезапустить Apache командой:
В случае, если используется PHP-fpm:
Далее необходимо вернуть наши прежние конфигурационные файлы взамен свежеустановленных стандартных. Делается это следующими командами, на вопрос о перезаписи отвечаем Y (Yes) и нажимаем Enter:
Строки по замене конфигурационных файлов opcache применимы только в случае, если у вас изначально стояло это расширение.
Дальше остаётся перезапустить службу php-fpm:
Если захотите снова переключить версию PHP, повторите процедуру, но предварительно отключите ветку репозитория командой (пример для отключения 7.4):
Затем включите нужную версию (пример для включения версии PHP 8.0):
Теперь можно проводить дальнейшую установку способом, описанным выше.