Зачем нужны несколько версий PHP и как их настроить
При размещении сайтов на сервере, для них могут потребоваться разные версии PHP. Это связано со спецификой CMS. Например, если одна из систем управления контентом давно не обновлялась и использует более раннюю версию PHP, а другая обновляется часто и требует более свежей версии PHP «под капотом». Бывают случаи, когда CMS просто не поддерживает те или иные особенности версии PHP и отказывается запускаться на ней.
Как корректно настроить на сервере альтернативные версии PHP и обойти проблемы, рассказываю в этой статье.
Содержание
Установка с помощью ispmanager
Ручная установка, настройка и выбор версии 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 <enter> to keep the current choice[*], or type selection number: 1</enter>
В примере будет выбрана и установлена по умолчанию 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, не задумываясь о том, установлен ли необходимый репозиторий, настроить необходимую версию PHP и установить или отключить для неё требуемые расширения. Отключение расширений может потребоваться в случае конфликта с другим установленным на сервере программным обеспечением. Подробнее управление PHP описано в документации:Работа с PHP в ispmanager
Я работаю с PHP через ispmanager не только когда нужна настройка альтернативных версий. В следующий раз расскажу, как использую панель для загрузки через PHP большого объема данных и установки расширений.