27 мая 2022 Время чтения: 4 минуты
Дмитрий Древко

Дмитрий Древко

Веб разработчик

Зачем нужны несколько версий PHP и как их настроить

ispmanager

При размещении сайтов на сервере, для них могут потребоваться разные версии PHP. Это связано со спецификой CMS. Например, если одна из систем управления контентом давно не обновлялась и использует более раннюю версию PHP, а другая обновляется часто и требует более свежей версии PHP «под капотом». Бывают случаи, когда CMS просто не поддерживает те или иные особенности версии PHP и отказывается запускаться на ней.


Как корректно настроить на сервере альтернативные версии PHP и обойти проблемы, рассказываю в этой статье.

Ручная установка, настройка и выбор версии PHP

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

Базовая установка версии PHP

Базовая установка в наиболее популярных операционных системах выглядит так:

  • В Debian-подобных системах используется команда apt install php;
  • В Centos — yum install php;

Эти команды устанавливают последнюю версию языка, доступную в репозитории.

Если же необходимо установить определённую версию PHP, которой ещё нет в репозитории операционной системы, то сначала надо выполнить две команды:

apt install software-properties-common — команда устанавливает программное обеспечение для управления дистрибутивами и независимыми поставщиками программного обеспечения.

add-apt-repository ppa:ondrej/php — добавляет в систему репозиторий, из которого, непосредственно, будут устанавливаться необходимые версии PHP.

После это можно выполнить команду для установки PHP, например, версии 7.4:
apt install php7.4

Выбор версии PHP для установки её по умолчанию

Когда базовая установка версии PHP выполнена, он по умолчанию становится основной.

Чтобы проверить, какая в данный момент версия PHP установлена и работает по умолчанию, надо выполнить команду:
php -v

А чтобы сменить версию по умолчанию, воспользуйтесь командой:
update-alternatives --config php

После её выполнения можно увидеть подобный список версий и их статус. Например:

Selection Path Priority Status
*0 /usr/bin/php5.6 56 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.0 80 manual mode

В этом примере символ * (звёздочки) указывает на выбранную в текущий момент версию PHP на сервере — 5.6.

Для смены версии система предложит выбор: нажать Enter, чтобы оставить выбранной текущую версию, либо указать цифру необходимой версии (из перечисленных в списке выше) и нажать Enter:
Press to keep the current choice[*], or type selection number: 1

В примере будет выбрана и установлена по умолчанию PHP версии 7.4.

Установка расширений

Чтобы установить необходимые расширения для PHP, нужно выполнить команду:
apt install php<версия>-<расширение>

Для PHP, который установлен в системе по умолчанию команда такая:
apt install php-mysqli

Если версия (например, 7.4) установлена вручную, тогда команда будет такой:
apt install php7.4-mysqli

Настройка PHP

Чтобы править настройки конкретной версии PHP, необходимо открыть для редактирования файл php.ini. Он может находиться в разных директориях в зависимости от установленного модуля. А значит, путь, который следует прописать в команде, будет отличаться. Например, для версии PHP 7.4, которая запускается в командной строке, команда выглядит так:
nano /etc/php/7.4/cli/PHP.ini

Для модуля apache:
nano /etc/php/7.4/apache2/PHP.ini

Для модуля fpm:
nano /etc/php/7.4/fpm/PHP.ini

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

Важно: Если у вас на сервере есть ISPmanager использовать ручной способ не стоит – можно создать конфликты, и тогда PHP не будет работать как надо. Про ручной способ рассказываю для ознакомления и тех, кто предпочитает работать без панели управления.

Как установку и настройку PHP и его модулей упрощает ISPmanager

При работе через ISPmanager не обязательно пользоваться командной строкой для настройки PHP. Установка и настройка PHP находятся в разделе Настройки -> Настройки PHP

Как настройки PHP выглядят в ISPmanager
Раздел в ISPmanager с настройками PHP

Здесь можно установить недостающую версию PHP, не задумываясь о том, установлен ли необходимый репозиторий, настроить необходимую версию PHP и установить или отключить для неё требуемые расширения. Отключение расширений может потребоваться в случае конфликта с другим установленным на сервере программным обеспечением. Подробнее управление PHP описано в документации:

Работа с PHP в ISPmanager

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

ISPmanager для управления веб-сервером

 

Попробовать ISPmanager можно бесплатно на две недели. Панель упрощает администрирование веб-серверов и работу с сайтами. Например, вместо ручного конфигурирования Apache или Nginx или установки языков, достаточно выбрать настройки в интерфейсе — ISPmanager выполнит все настройки автоматически.