Мой блог
Как установить несколько версий PHP (от 5.6 до 8.4) для ISPConfig 3.2 на Debian 11 и 12

При администрировании современных веб-серверов под управлением панели ISPConfig 3.2 часто возникает сложная дилемма. С одной стороны, новые проекты требуют самых современных и производительных интерпретаторов, таких как PHP 8.3 или новейший PHP 8.4. С другой стороны, у многих клиентов остаются старые сайты, жестко завязанные на возможностях устаревших версий PHP 5.6 или линейки PHP 7.x. По умолчанию дистрибутив операционной системы предлагает лишь одну стандартную версию PHP, предназначенную для конкретного релиза. Данное практическое руководство подробно описывает процесс развертывания дополнительных версий PHP (от архивной 5.6 до стабильных 7.0–7.4 и актуальных 8.0–8.4) на серверах под управлением Debian 11 и Debian 12 с использованием пакетного менеджера apt. В дальнейшем администратор сможет индивидуально назначать необходимый интерпретатор для каждого конкретного сайта как в высокопроизводительном режиме PHP-FPM, так и через режим FastCGI.
Важные предварительные замечания и требования к системе
Прежде чем приступать к модернизации программного окружения, необходимо принять во внимание несколько важных факторов. В данном руководстве для установки пакетов PHP используется популярный сторонний репозиторий SURY (sury.org). Обратите внимание, что при его подключении обновляются не только пакеты самого интерпретатора, но и критически важные системные библиотеки, включая OpenSSL. По этой причине деактивировать или удалять репозиторий SURY после завершения установки пакетов категорически не рекомендуется — это может нарушить целостность операционной системы и привести к неработоспособности зависимых сервисов. Также следует помнить о системных ограничениях режимов работы интерпретатора: интерфейс PHP-FPM может успешно использоваться как на серверах под управлением Apache, так и на Nginx, тогда как более старый режим FastCGI доступен исключительно пользователям веб-сервера Apache.
Подключение репозитория SURY к операционной системе
Для начала процесса установки необходимо подготовить систему и загрузить зависимости, требуемые для корректного добавления нового источника пакетов. Выполните в терминале следующую команду:
apt-get install -y apt-transport-https lsb-release ca-certificates
После успешного завершения установки базовых пакетов необходимо безопасно импортировать GPG-ключ репозитория SURY, выполнив команду:
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg >/dev/null 2>&1
Теперь добавьте сам репозиторий в список источников вашей системы Debian:
echo "deb https://packages.sury.org/php/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/php.list
Завершающим шагом подготовки является обновление локального индекса пакетов и обновление уже установленного в системе программного обеспечения до актуальных версий из нового репозитория. Для этого поочередно выполните команды:
apt-get update
apt-get upgrade
Пошаговая установка дополнительных версий PHP
Вам совершенно не обязательно устанавливать весь спектр представленных ниже версий. Выберите только те, которые действительно требуются для работы ваших проектов.
Инсталляция PHP 5.6
Устаревшая, но до сих пор востребованная версия для запуска старых CMS. Для установки выполните следующую команду:
apt-get install php5.6 php5.6-cli php5.6-cgi php5.6-fpm php5.6-gd php5.6-mysql php5.6-imap php5.6-curl php5.6-intl php5.6-pspell php5.6-recode php5.6-sqlite3 php5.6-tidy php5.6-xmlrpc php5.6-xsl php5.6-zip php5.6-mbstring php5.6-soap php5.6-opcache libicu65 php5.6-common php5.6-json php5.6-readline php5.6-xml
Инсталляция PHP 7.0
Для развертывания версии PHP 7.0 воспользуйтесь следующей командой:
apt-get install php7.0 php7.0-cli php7.0-cgi php7.0-fpm php7.0-gd php7.0-mysql php7.0-imap php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-zip php7.0-mbstring php7.0-soap php7.0-opcache php7.0-common php7.0-json php7.0-readline php7.0-xml
Инсталляция PHP 7.1
Установка PHP 7.1 со всеми необходимыми модулями выполняется командой:
apt-get install php7.1 php7.1-cli php7.1-cgi php7.1-fpm php7.1-gd php7.1-mysql php7.1-imap php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-xsl php7.1-zip php7.1-mbstring php7.1-soap php7.1-opcache php7.1-common php7.1-json php7.1-readline php7.1-xml
Инсталляция PHP 7.2
Для установки версии 7.2 запустите команду:
apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm php7.2-gd php7.2-mysql php7.2-imap php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php7.2-zip php7.2-mbstring php7.2-soap php7.2-opcache php7.2-common php7.2-json php7.2-readline php7.2-xml
Инсталляция PHP 7.3
Для развертывания PHP 7.3 выполните:
apt-get install php7.3 php7.3-cli php7.3-cgi php7.3-fpm php7.3-gd php7.3-mysql php7.3-imap php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php7.3-zip php7.3-mbstring php7.3-soap php7.3-opcache php7.3-common php7.3-json php7.3-readline php7.3-xml
Инсталляция PHP 7.4
Установка популярной версии 7.4 осуществляется с помощью команды (обратите внимание на отсутствие модуля recode, который более не поддерживается в этой ветке):
apt-get install php7.4 php7.4-cli php7.4-cgi php7.4-fpm php7.4-gd php7.4-mysql php7.4-imap php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl php7.4-zip php7.4-mbstring php7.4-soap php7.4-opcache php7.4-common php7.4-json php7.4-readline php7.4-xml
Инсталляция PHP 8.0
Для установки первой стабильной ветки восьмого поколения выполните следующую команду:
apt-get install php8.0 php8.0-cli php8.0-cgi php8.0-fpm php8.0-gd php8.0-mysql php8.0-imap php8.0-curl php8.0-intl php8.0-pspell php8.0-sqlite3 php8.0-tidy php8.0-xsl php8.0-zip php8.0-mbstring php8.0-soap php8.0-opcache php8.0-common php8.0-readline php8.0-xml
Инсталляция PHP 8.1
Версия PHP 8.1 устанавливается с помощью набора пакетов:
apt-get install php8.1 php8.1-cli php8.1-cgi php8.1-fpm php8.1-gd php8.1-mysql php8.1-imap php8.1-curl php8.1-intl php8.1-pspell php8.1-sqlite3 php8.1-tidy php8.1-xsl php8.1-zip php8.1-mbstring php8.1-soap php8.1-opcache php8.1-common php8.1-readline php8.1-xml
Инсталляция PHP 8.2
Для развертывания PHP 8.2 воспользуйтесь командой:
apt-get install php8.2 php8.2-cli php8.2-cgi php8.2-fpm php8.2-gd php8.2-mysql php8.2-imap php8.2-curl php8.2-intl php8.2-pspell php8.2-sqlite3 php8.2-tidy php8.2-xsl php8.2-zip php8.2-mbstring php8.2-soap php8.2-opcache php8.2-common php8.2-readline php8.2-xml
Инсталляция PHP 8.3
Для добавления производительной версии PHP 8.3 запустите следующую команду:
apt-get install php8.3 php8.3-cli php8.3-cgi php8.3-fpm php8.3-gd php8.3-mysql php8.3-imap php8.3-curl php8.3-intl php8.3-pspell php8.3-sqlite3 php8.3-tidy php8.3-xsl php8.3-zip php8.3-mbstring php8.3-soap php8.3-opcache php8.3-common php8.3-readline php8.3-xml
Инсталляция PHP 8.4
Новейшая версия PHP 8.4 устанавливается аналогичным образом:
apt-get install php8.4 php8.4-cli php8.4-cgi php8.4-fpm php8.4-gd php8.4-mysql php8.4-imap php8.4-curl php8.4-intl php8.4-pspell php8.4-sqlite3 php8.4-tidy php8.4-xsl php8.4-zip php8.4-mbstring php8.4-soap php8.4-opcache php8.4-common php8.4-readline php8.4-xml
Восстановление оригинальной версии PHP по умолчанию для операционной системы
После добавления сторонних репозиториев и установки множества версий интерпретатора системные символические ссылки Debian могут автоматически переключиться на последнюю установленную версию. Это крайне нежелательно, поскольку различные системные скрипты и сама панель ISPConfig ожидают использования оригинальной, поставляемой дистрибутивом версии PHP. Чтобы гарантировать корректную работу всей операционной системы, вам необходимо вернуть настройки по умолчанию. Для этого поочередно запустите в консоли три интерактивные команды и выберите правильную версию PHP:
update-alternatives --config phpupdate-alternatives --config php-cgiupdate-alternatives --config php-fpm.sock
В процессе выбора ориентируйтесь на версию вашей операционной системы:
- Если вы используете Debian 12 (Bookworm), в качестве дефолтной следует выбрать версию 8.2.
- Если ваш сервер работает под управлением Debian 11 (Bullseye), выберите версию 7.4.
- Для серверов на базе более старого Debian 10 (Buster) правильным выбором будет версия 7.3.
Интеграция установленных версий PHP в панель ISPConfig 3
Для того чтобы новые интерпретаторы стали доступны пользователям панели ISPConfig 3 при настройке сайтов, их необходимо зарегистрировать в веб-интерфейсе. Перейдите в панели управления по следующему пути: Система (System) > Дополнительные версии PHP (Additional PHP Versions) > Добавить новую версию PHP (Add new PHP version).
Прежде всего, настоятельно рекомендуется зарегистрировать встроенную по умолчанию версию PHP для вашей операционной системы. Как уже упоминалось выше, эта дефолтная версия зависит от релиза вашего дистрибутива (для Debian 10 это PHP 7.3, для Debian 11 — PHP 7.4, а для Debian 12 — PHP 8.2). Ознакомьтесь с подробными путями конфигурации для каждого интерпретатора ниже.
Конфигурационный профиль для PHP 5.6
Для корректной работы сайтов на базе PHP 5.6 укажите следующие параметры:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi5.6 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/5.6/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php5.6-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/5.6/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/5.6/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php5.6
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php5_6 - Имя CLI-версии для задач планировщика (cron-скриптов):
php5.6
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 7.0
Заполните форму в панели управления для версии PHP 7.0 следующими значениями:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi7.0 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.0/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php7.0-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.0/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/7.0/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php7.0
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php7_0 - Имя CLI-версии для задач планировщика (cron-скриптов):
php7.0
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 7.1
Если вашим проектам требуется версия PHP 7.1, пропишите для нее следующие пути:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi7.1 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.1/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php7.1-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.1/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/7.1/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php7.1
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php7_1 - Имя CLI-версии для задач планировщика (cron-скриптов):
php7.1
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 7.2
Для корректного подключения ветки PHP 7.2 в системе укажите следующие директории:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi7.2 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.2/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php7.2-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.2/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/7.2/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php7.2
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php7_2 - Имя CLI-версии для задач планировщика (cron-скриптов):
php7.2
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 7.3
Для сайтов, использующих PHP 7.3, укажите следующие системные пути:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi7.3 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.3/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php7.3-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.3/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/7.3/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php7.3
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php7_3 - Имя CLI-версии для задач планировщика (cron-скриптов):
php7.3
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 7.4
Для настройки популярной версии PHP 7.4 примените следующие параметры:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi7.4 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.4/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php7.4-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/7.4/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/7.4/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php7.4
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php7_4 - Имя CLI-версии для задач планировщика (cron-скриптов):
php7.4
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 8.0
Для первой из современных восьмых версий PHP укажите следующие пути:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi8.0 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.0/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php8.0-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.0/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/8.0/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php8.0
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php8_0 - Имя CLI-версии для задач планировщика (cron-скриптов):
php8.0
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 8.1
Настройки для стабильной версии PHP 8.1 выглядят следующим образом:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi8.1 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.1/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php8.1-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.1/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/8.1/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php8.1
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php8_1 - Имя CLI-версии для задач планировщика (cron-скриптов):
php8.1
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 8.2
Если вы хотите настроить PHP 8.2 в качестве дополнительной версии, используйте данные конфигурационные пути:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi8.2 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.2/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php8.2-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.2/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/8.2/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php8.2
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php8_2 - Имя CLI-версии для задач планировщика (cron-скриптов):
php8.2
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 8.3
Для настройки современного окружения PHP 8.3 укажите следующие параметры:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi8.3 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.3/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php8.3-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.3/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/8.3/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php8.3
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php8_3 - Имя CLI-версии для задач планировщика (cron-скриптов):
php8.3
- Имя соответствующей секции Jailkit:
Конфигурационный профиль для PHP 8.4
И, наконец, для самой свежей версии PHP 8.4 заполните форму со следующими значениями параметров:
- Настройки Fast-CGI:
- Путь к исполняемому файлу PHP FastCGI:
/usr/bin/php-cgi8.4 - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.4/cgi/
- Путь к исполняемому файлу PHP FastCGI:
- Настройки PHP-FPM:
- Путь к скрипту инициализации службы PHP-FPM:
php8.4-fpm - Путь к каталогу конфигурационного файла php.ini:
/etc/php/8.4/fpm/ - Путь к каталогу пулов PHP-FPM (pool directory):
/etc/php/8.4/fpm/pool.d/
- Путь к скрипту инициализации службы PHP-FPM:
- Настройки PHP-CLI:
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
/usr/bin/php8.4
- Путь к исполняемому файлу интерфейса командной строки PHP CLI:
- Настройки окружения PHP Jailkit:
- Имя соответствующей секции Jailkit:
php8_4 - Имя CLI-версии для задач планировщика (cron-скриптов):
php8.4
- Имя соответствующей секции Jailkit:
Заключение
После завершения этого обширного процесса ручной конфигурации и сохранения изменений в панели управления ISPConfig 3, вы сможете зайти в настройки любого обслуживаемого веб-сайта и без труда выбрать необходимую версию интерпретатора PHP. Это обеспечивает веб-серверу беспрецедентную гибкость, надежно разделяя среду выполнения для различных клиентских приложений и минимизируя возможные конфликты зависимостей. При возникновении любых вопросов, сложностей или неожиданных ошибок в процессе настройки вы всегда можете открыть новую тему для обсуждения на официальном форуме технической поддержки.
Источник: howtoforge.com

