Установка и настройка нескольких версий PHP в ISPConfig на AlmaLinux 9 и Rocky Linux 9

В инструкции по установке ISPConfig на AlmaLinux или RockyLinux 9 мы установили панель управления хостингом ISPConfig на SSD VPS или выделенный сервер. В результате мы получили хостинг-сервер для размещения сайтов, баз данных, почтовых ящиков и других сервисов.

Однако при установке ISPConfig мы настроили только одну основную версию PHP — PHP 8.3. Этого может оказаться недостаточно для полноценного предоставления услуг хостинга, поскольку у разных сайтов могут быть разные требования к версии PHP. Например, один сайт может работать на PHP 8.3, тогда как для другого уже требуется PHP 8.2 или PHP 8.3.

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

Данная инструкция состоит из двух частей. Первая часть посвящена физической установке дополнительных версий PHP на сервер с AlmaLinux 9 или RockyLinux 9, а вторая часть — настройке самой панели управления ISPConfiga для работы с дополнительными версиями PHP. После этого при создании или редактировании сайта в ISPConfig можно будет выбрать, какую именно версию PHP он должен использовать.

Таким образом, один сервер с ISPConfig сможет одновременно обслуживать сайты, работающие на разных версиях PHP, без необходимости создавать отдельный сервер для каждой версии.

1. Устанавливаем дополнительные версии PHP на сервер с ISPConfig

1.1. Устанавливаем дополнительный репозиторий PHP Remi

Важно: Если вы устанавливали ISPConfig на свой сервер в соответствии с инструкциями, приведенными в статье Устанавливаем хостинг-панель ISPConfig на AlmaLinux 9, перейдите к следующему шагу.

Убедитесь, что на вашем сервере с ISPConfig используется дистрибутив Linux AlmaLinux или RockyLinux 9-й ветки. Для этого в командной строке выполните:

cat /etc/redhat-release

В результате вы должны получить что-то вроде:

AlmaLinux release 9.x
или
Rocky Linux release 9.x

В выводе должно быть AlmaLinux или Rocky Linux и указана версия 9.х.

Если вы получили правильный вывод, установите репозиторий Remi. Для этого выполните:

dnf -y install epel-release
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

1.2. Устанавливаем PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5.

На момент написания этой инструкции репозиторий Remi содержит RPM-пакеты версий PHP от 7.4 до 8.5. Каждую из доступных версий PHP можно установить, выполнив соответствующие инструкции, приведенные ниже.

Важно: Вам не обязательно устанавливать все версии PHP, доступные в репозитории Remi, если они вам не нужны. Вы можете установить только те дополнительные версии PHP, которые требуются для ваших проектов.

Устанавливаем PHP 7.4 на сервер

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

dnf -y install php74-php php74-php-common php74-php-cli php74-php -fpm php74-php-mysqlnd php74-php-opcache php74-php-xml php74-php-tidy php74-php-soap php74-php-pspell php74-php-mbstring php74-php-json php74-php-intl php74-php-imap php74-php-gd php74-php-xmlrpc
sed -i 's/^\([[:space:]]*\)SetHandler "proxy:unix/\1#SetHandler "proxy:unix/' /etc/httpd/conf.d/php74-php.conf

Устанавливаем PHP 8.0 на сервер

Для установки версии PHP 8.0 в командной строке выполните:

dnf -y install php80-php php80-php-common php80-php-cli php80-php -fpm php80-php-mysqlnd php80-php-opcache php80-php-xml php80-php-tidy php80-php-soap php80-php-pspell php80-php-mbstring php80-php-json php80-php-intl php80-php-imap php80-php-gd php80-php-xmlrpc
sed -i 's/^\([[:space:]]*\)SetHandler "proxy:unix/\1#SetHandler "proxy:unix/' /etc/httpd/conf.d/php80-php.conf

Устанавливаем PHP 8.1 на сервер

Чтобы установить PHP 8.1, выполните:

dnf -y install php81-php php81-php-common php81-php-cli php81-php-fpm php81-php-mysqlnd php81-php-opcache php81-php-xml php81-php-tidy php81-php-soap php81 -php-pspell php81-php-mbstring php81-php-json php81-php-intl php81-php-imap php81-php-gd php81-php-xmlrpc
sed -i 's/^\([[:space:]]*\)SetHandler "proxy:unix/\1#SetHandler "proxy:unix/' /etc/httpd/conf.d/php81-php.conf

Устанавливаем PHP 8.2 на сервер

Чтобы установить PHP 8.2, выполните:

dnf -y install php82-php php82-php-common php82-php-cli php82-php-fpm php82-php-mysqlnd php82-php -opcache php82-php-xml php82-php-tidy php82-php-soap php82-php-pspell php82-php-mbstring php82-php-json php82-php-intl php82-php-imap php82-php-gd php82-php-xmlrpc
sed -i 's/^\([[:space:]]*\)SetHandler "proxy:unix/\1#SetHandler "proxy:unix/' /etc/httpd/conf.d/php82-php.conf

Устанавливаем PHP 8.3 на сервер

Чтобы установить PHP 8.3, выполните:

dnf -y install php83-php php83-php-common php83-php-cli php83-php-fpm php83-php-mysqlnd php83-php -opcache php83-php-xml php83-php-tidy php83-php-soap php83-php-pspell php83-php-mbstring php83-php-json php83-php-intl php83-php-imap php83-php-gd php83-php-xmlrpc
sed -i 's/^\([[:space:]]*\)SetHandler "proxy:unix/\1#SetHandler "proxy:unix/' /etc/httpd/conf.d/php83-php.conf

Устанавливаем PHP 8.4 на сервер

Чтобы установить PHP 8.4, выполните следующую команду:

dnf -y install php84-php php84-php-common php84-php-cli php84-php-fpm php84-php-mysqlnd php84-php -opcache php84-php-xml php84-php-tidy php84-php-soap php84-php-pspell php84-php-mbstring php84-php-json php84-php-intl php84-php-imap php84-php-gd php84-php-xmlrpc
sed -i 's/^\([[:space:]]*\)SetHandler "proxy:unix/\1#SetHandler "proxy:unix/' /etc/httpd/conf.d/php84-php.conf

Устанавливаем PHP 8.5 на сервер

Чтобы установить PHP 8.5, выполните:

dnf -y install php85-php php85-php-common php85-php-cli php85-php-fpm php85-php-mysqlnd php85-php -opcache php85-php-xml php85-php-tidy php85-php-soap php85-php-pspell php85-php-mbstring php85-php-json php85-php-intl php85-php-imap php85-php-gd php85-php-xmlrpc
sed -i 's/^\([[:space:]]*\)SetHandler "proxy:unix/\1#SetHandler "proxy:unix/' /etc/httpd/conf.d/php85-php.conf
Важно: Выполняя команду «sed», мы блокируем обработку запросов к phpMyAdmin, RoundCube и самому ISPConfig с помощью дополнительных версий PHP. Запросы к phpMyAdmin, RoundCube и самому ISPConfig продолжают обрабатываться основной версией PHP.

2. Настраиваем ISPConfig для работы с дополнительными версиями PHP

2.1. Добавим версии PHP 7.4–8.5 в ISPConfig

2.1.1. Войдите в ISPConfig

Войдите в панель управления хостингом ISPConfig вашего сервера как администратор. Обычно панель управления ISPConfig доступна по ссылке вида:

URL: https://yourserver.com:8080/
логин: admin
пароль: {ваш пароль администратора}

2.1.2. Перейдите в раздел «Дополнительные версии PHP» (Additional PHP version)

В верхнем горизонтальном меню нажмите на «Система» (System), после чего в боковом меню слева нажмите на «Дополнительные версии PHP» (Additional PHP version):

2.1.3. Настройте дополнительную версию PHP в ISPConfig

Нажмите кнопку «Добавить новую версию PHP» (Add new PHP version):

Появится окно с несколькими вкладками, каждая из которых позволяет настроить определённые параметры для каждой дополнительной версии PHP:

Для настройки каждой установленной версии PHP заполните форму следующим образом:

PHP 7.4

Вкладка Name:

PHP Name: PHP 7.4

Вкладка FastCGI Settings:

Path to the PHP FastCGI binary: /usr/bin/php74-cgi
Path to the php.ini directory: /etc/opt/remi/php74/

Вкладка PHP-FPM Settings:

PHP-FPM Systemd service: php74-php-fpm
Path to the php.ini directory /etc/opt/remi/php74/
Path to the PHP-FPM pool directory: /etc/opt/remi/php74/php-fpm.d/

Вкладка PHP-CLI Settings:

Path to the PHP CLI binary: /usr/bin/php74
PHP Jailkit section: php7_4

Вкладка Priority:

Priority: 100

Заполнив все поля формы для настройки PHP 7.4, нажмите кнопку «Сохранить» (Save).

Для активации и запуска PHP-FPM для PHP 7.4 выполните команды:

systemctl enable php74-php-fpm
service php74-php-fpm start

Повторите шаг 2.1.3, если необходимо добавить ещё одну дополнительную версию PHP.

PHP 8.0

Вкладка Name:

PHP Name: PHP 8.0

Вкладка FastCGI Settings:

Path to the PHP FastCGI binary: /usr/bin/php80-cgi
Path to the php.ini directory: /etc/opt/remi/php80/

Вкладка PHP-FPM Settings:

PHP-FPM Systemd service: php80-php-fpm
Path to the php.ini directory /etc/opt/remi/php80/
Путь к каталогу пулов PHP-FPM: /etc/opt/remi/php80/php-fpm.d/

Вкладка PHP-CLI Settings:

Path to the PHP CLI binary: /usr/bin/php80
PHP Jailkit section: php8_0

Вкладка Priority:

Priority: 100

Заполнив все поля формы для настройки PHP 8.0, нажмите кнопку «Сохранить» (Save)

Для активации и запуска PHP-FPM для PHP 8.0 выполните команды:

systemctl enable php80-php-fpm
service php80-php-fpm start

Повторите шаг 2.1.3, если необходимо добавить ещё одну дополнительную версию PHP.

PHP 8.1

Вкладка Name:

PHP Name: PHP 8.1

Вкладка FastCGI Settings:

Path to the PHP FastCGI binary: /usr/bin/php81-cgi
Path to the php.ini directory: /etc/opt/remi/php81/

Вкладка PHP-FPM Settings:

PHP-FPM Systemd service: php81-php-fpm
Path to the php.ini directory /etc/opt/remi/php81/
Path to the PHP-FPM pool directory: /etc/opt/remi/php81/php-fpm.d/

Вкладка PHP-CLI Settings:

Path to the PHP CLI binary: /usr/bin/php81
PHP Jailkit section: php8_1

Заполнив все поля формы для настройки PHP 8.1, нажмите кнопку «Сохранить» (Save)

Для активации и запуска PHP-FPM для PHP 8.1 выполните команды:

systemctl enable php81-php-fpm
service php81-php-fpm start

Повторите шаг 2.1.3, если необходимо добавить ещё одну дополнительную версию PHP.

PHP 8.2

Вкладка Name:

PHP Name: PHP 8.2

Вкладка FastCGI Settings:

Path to the PHP FastCGI binary: /usr/bin/php82-cgi
Path to the php.ini directory: /etc/opt/remi/php82/

Вкладка PHP-FPM Settings:

PHP-FPM Systemd service: php82-php-fpm
Path to the php.ini directory /etc/opt/remi/php82/
Path to the PHP-FPM pool directory: /etc/opt/remi/php82/php-fpm.d/

Вкладка PHP-CLI Settings:

Path to the PHP CLI binary: /usr/bin/php82
PHP Jailkit section: php8_2

Заполнив все поля формы для настройки PHP 8.2, нажмите кнопку «Сохранить» (Save)

Для активации и запуска PHP-FPM для PHP 8.2 выполните команды:

systemctl enable php82-php-fpm
service php82-php-fpm start

Повторите шаг 2.1.3, если необходимо добавить ещё одну дополнительную версию PHP.

PHP 8.3

Вкладка Name:

PHP Name: PHP 8.3

Вкладка FastCGI Settings:

Path to the PHP FastCGI binary: /usr/bin/php83-cgi
Path to the php.ini directory: /etc/opt/remi/php83/

Вкладка PHP-FPM Settings:

PHP-FPM Systemd service: php83-php-fpm
Path to the php.ini directory /etc/opt/remi/php83/
Path to the PHP-FPM pool directory: /etc/opt/remi/php83/php-fpm.d/

Вкладка PHP-CLI Settings:

Path to the PHP CLI binary: /usr/bin/php83
PHP Jailkit section: php8_3

Заполнив все поля формы для настройки PHP 8.3, нажмите кнопку «Сохранить» (Save)

Для активации и запуска PHP-FPM для PHP 8.3 выполните команды:

systemctl enable php83-php-fpm
service php83-php-fpm start

Повторите шаг 2.1.3, если необходимо добавить ещё одну дополнительную версию PHP.

PHP 8.4

Вкладка Name:

PHP Name: PHP 8.4

Вкладка FastCGI Settings:

Path to the PHP FastCGI binary: /usr/bin/php84-cgi
Path to the php.ini directory: /etc/opt/remi/php84/

Вкладка PHP-FPM Settings:

PHP-FPM Systemd service: php84-php-fpm
Path to the php.ini directory /etc/opt/remi/php84/
Путь к каталогу пулов PHP-FPM: /etc/opt/remi/php84/php-fpm.d/

Вкладка PHP-CLI Settings:

Path to the PHP CLI binary: /usr/bin/php84
PHP Jailkit section: php8_4

Заполнив все поля формы для настройки PHP 8.4, нажмите кнопку «Сохранить» (Save)

Для активации и запуска PHP-FPM для PHP 8.4 выполните команды:

systemctl enable php84-php-fpm
service php84-php-fpm start

Повторите шаг 2.1.3, если необходимо добавить ещё одну дополнительную версию PHP.

PHP 8.5

Вкладка Name:

PHP Name: PHP 8.5

Вкладка FastCGI Settings:

Path to the PHP FastCGI binary: /usr/bin/php85-cgi
Path to the php.ini directory: /etc/opt/remi/php85/

Вкладка PHP-FPM Settings:

PHP-FPM Systemd service: php85-php-fpm
Path to the php.ini directory /etc/opt/remi/php85/
Path to the PHP-FPM pool directory: /etc/opt/remi/php85/php-fpm.d/

Вкладка PHP-CLI Settings:

Path to the PHP CLI binary: /usr/bin/php85
PHP Jailkit section: php8_5

Заполнив все поля формы для настройки PHP 8.5, нажмите кнопку «Сохранить» (Save)

Для активации и запуска PHP-FPM для PHP 8.5 выполните команды:

systemctl enable php85-php-fpm
service php85-php-fpm start

Повторите шаг 2.1.3, если необходимо добавить ещё одну дополнительную версию PHP.

2.2. Настройка дополнительных параметров PHP в ISPConfig

2.2.1. Настройка сервера (Server config)

В верхнем горизонтальном меню нажмите «Система» (System), в левом боковом меню нажмите «Настройка сервера» (Server config), а затем на названии сервера, который вы настраиваете:

2.2.2 Настройка PHP (PHP Settings)

Перейдите на вкладку «Веб» (Web) и раскройте раздел «Настройки PHP» (PHP Settings):

Активируйте опцию «Скрыть системный PHP» (Hide Default PHP-Version in selectbox). Эта опция скроет системный PHP при выборе версии PHP для сайта.

Информация: Для работы с сайтами мы рекомендуем использовать только дополнительные версии PHP. В случае необходимости использования версии PHP, которая используется в качестве основной (системной), рекомендуем установить ту же самую версию PHP в качестве дополнительной.

«PHP-обработчик по умолчанию» (Default PHP Handler): укажите, какой именно PHP-обработчик будет выбран по умолчанию при добавлении нового домена. Среди опций:

  • «Отключено» (Disabled) — PHP для сайта отключен
  • «Fast-CGI» — для обработки запросов к PHP-скриптам будет использоваться Fast-CGI
  • «PHP-FPM» — для обработки запросов к PHP-скриптам будет использоваться PHP-FPM

Сохраните настройки, нажав на «Сохранить» (Save) в нижней части страницы.

2.2.3. Главная конфигурация (Main Config)

В верхнем вертикальном меню нажмите на «Система» (System), затем на «Главная конфигурация» (Main Config) в боковом меню слева.

На этой странице нас интересует опция «Обработчик PHP» (PHP Handler (Apache only)). Прокрутите основной раздел страницы вниз, пока не увидите эту опцию.

«Обработчик PHP» (PHP Handler (Apache only)) — укажите, какие обработчики PHP будут доступны пользователям при добавлении сайта. Рекомендуем выбрать один или несколько, если необходимо:

  • «Отключено» (Disabled) — PHP не обрабатывается;
  • «Fast-CGI» — для обработки запросов к PHP-скриптам будет использоваться Fast-CGI;
  • «PHP-FPM» — для обработки запросов к PHP-скриптам будет использоваться PHP-FPM.

Сохраните настройки, нажав на «Сохранить» (Save) в нижней части страницы.

Установка и настройка PHP в ISPConfig завершена. Что мы получили?

Установив на сервер дополнительные версии PHP 7.4–8.5 и настроив их соответствующим образом в ISPConfig, мы получили полноценный хостинг-сервер, на котором можно одновременно размещать сайты с разными требованиями к версии PHP.

Теперь для каждого сайта в ISPConfig можно отдельно выбрать нужную версию PHP. Например, один сайт может работать на PHP 7.4, другой — на PHP 8.2, а новый проект — на PHP 8.5. При этом все они могут одновременно работать на одном сервере и не мешать друг другу.

Такая конфигурация особенно полезна, если на сервере размещаются проекты, различающиеся по возрасту и техническим требованиям. Старые сайты, которые пока невозможно перенести на более новую версию PHP, можно оставить на PHP 7.4, а новые проекты использовать с актуальными версиями PHP.

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

В результате ваш SSD VPS или выделенный сервер может выполнять роль полноценного хостинг-сервера для нескольких проектов с различными требованиями к программному обеспечению.

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

Таким образом, после выполнения этой инструкции у вас будет сервер с ISPConfig, на котором можно гибко управлять версиями PHP для каждого сайта отдельно и постепенно переводить старые проекты на более новые версии PHP без необходимости переносить их на другой сервер.

Прокрутить вверх