PHP 8.2 — это стабильная ветка PHP, которая до сих пор широко используется в корпоративных проектах. Она получает обновления безопасности до 31 декабря 2026 года. Если ваше приложение зафиксировано на PHP 8.2 (например, старая версия Laravel, Drupal или WordPress с плагинами, несовместимыми с PHP 8.3+), это руководство для вас.
В этом руководстве я покажу два способа установки PHP 8.2 на Debian:
- Из официальных репозиториев Debian (только Debian 12)
- Из репозитория Sury (Debian 13 и 11)
| Релиз Debian | PHP по умолчанию | PHP 8.2 в репозитории | Нужен Sury? |
|---|---|---|---|
| Debian 13 (Trixie) | 8.4 | ❌ Нет | ✅ Да |
| Debian 12 (Bookworm) | 8.2 | ✅ Да | ❌ Нет |
| Debian 11 (Bullseye) | 7.4 | ❌ Нет | ✅ Да |
⚠️ Для новых проектов рекомендуется PHP 8.4 или выше. PHP 8.2 используйте только если ваше приложение требует именно эту версию.
Предварительные требования
Перед установкой убедитесь, что:
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Способ 1: Установка PHP 8.2 из репозиториев Debian (Debian 12)
Debian 12 (Bookworm) содержит PHP 8.2 в официальных репозиториях.
Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -y
Шаг 2: Проверьте, что пакет php8.2 доступен
apt-cache policy php8.2
✅ Ожидаемый вывод: Должна быть строка с bookworm-security или bookworm/main.
Шаг 3: Выберите способ интеграции с веб-сервером
| Метод | Пакеты | Для кого |
|---|---|---|
| Apache mod_php | libapache2-mod-php8.2 | Локальная разработка, небольшие сайты |
| Apache + PHP-FPM | php8.2-fpm, libapache2-mod-fcgid | Продакшен Apache с разделением процессов |
| Nginx + PHP-FPM | php8.2-fpm | Серверы на Nginx (LEMP) |
Установка PHP 8.2 с Apache mod_php
sudo apt install -y php8.2-cli libapache2-mod-php8.2
sudo systemctl restart apache2
Проверьте, что модуль загружен:
sudo a2query -m php8.2
✅ Ожидаемый вывод: php8.2 (enabled by maintainer script)
Установка PHP 8.2 с Apache и PHP-FPM
sudo apt install -y php8.2-cli php8.2-fpm libapache2-mod-fcgid
sudo a2dismod php8.2 # если был включён mod_php
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo systemctl enable php8.2-fpm --now
sudo systemctl restart apache2
Проверьте статус PHP-FPM:
systemctl status php8.2-fpm --no-pager | head -n 8
✅ Ожидаемый вывод: Active: active (running)
Установка PHP 8.2 с Nginx и PHP-FPM
sudo apt install -y php8.2-cli php8.2-fpm
sudo systemctl enable php8.2-fpm --now
Добавьте в конфигурацию Nginx (в блок server { ... }):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
Проверьте и перезагрузите Nginx:
sudo nginx -t
sudo systemctl reload nginx
Способ 2: Установка PHP 8.2 из репозитория Sury (Debian 13 и 11)
Для Debian 13 и 11 используем репозиторий Sury (deb.sury.org).
Шаг 1: Установите зависимости
sudo apt install -y ca-certificates curl
Шаг 2: Добавьте GPG-ключ репозитория Sury
sudo curl -fsSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Шаг 3: Добавьте репозиторий Sury
CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME")
ARCH=$(dpkg --print-architecture)
cat <<EOF | sudo tee /etc/apt/sources.list.d/php.sources
Types: deb
URIs: https://packages.sury.org/php/
Suites: ${CODENAME}
Components: main
Architectures: ${ARCH}
Signed-By: /usr/share/keyrings/deb.sury.org-php.gpg
EOF
Шаг 4: Обновите список пакетов
sudo apt update
Шаг 5: Проверьте, что PHP 8.2 теперь доступен
apt-cache policy php8.2
✅ Ожидаемый вывод: Должна быть строка с packages.sury.org.
Шаг 6: Установите PHP 8.2 (выберите один из вариантов выше — mod_php, Apache+FPM или Nginx+FPM)
Установка PHP-расширений
Установите наиболее популярные расширения:
sudo apt install -y php8.2-curl php8.2-gd php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip php8.2-intl php8.2-bcmath php8.2-imagick php8.2-redis php8.2-memcached php8.2-soap php8.2-apcu
Что делает каждое расширение:
php8.2-curl— работа с HTTP-запросами (API)php8.2-gd— обработка изображенийphp8.2-mbstring— многобайтовые строки (кириллица)php8.2-mysql— подключение к MySQL/MariaDBphp8.2-xml— обработка XML, DOMphp8.2-zip— работа с ZIP-архивамиphp8.2-intl— интернационализацияphp8.2-bcmath— математические операции с произвольной точностью
⚠️ Примечание: Пакета php8.2-json не существует — JSON встроен в PHP 8.x.
Перезапустите обработчик PHP:
Для Apache mod_php:
sudo systemctl restart apache2
Для PHP-FPM:
sudo systemctl restart php8.2-fpm
Проверьте, что расширения загружены:
php8.2 -m | grep -E 'curl|gd|mbstring|mysqli|xml|zip'
Управление версиями PHP CLI
Если на системе установлено несколько версий PHP (например, 8.2 и 8.4), вы можете переключаться между ними.
Список установленных версий:
update-alternatives --display php
Установить PHP 8.2 как версию по умолчанию для CLI:
sudo update-alternatives --set php /usr/bin/php8.2
Проверьте:
php --version
✅ Ожидаемый вывод: PHP 8.2.x
Решение типичных проблем
8.1 Ошибка: Unable to locate package php8.2
Симптом: sudo apt install php8.2-cli не находит пакет.
Причина: На Debian 13 или 11 нет PHP 8.2 в официальных репозиториях.
Пошаговое решение:
Используйте метод 2 (репозиторий Sury).
8.2 Ошибка: Signed-By conflict с extrepo
Симптом: sudo apt update выдаёт ошибку конфликта Signed-By.
Причина: Раньше вы использовали extrepo для Sury, а теперь добавляете ручной репозиторий.
Пошаговое решение:
Шаг 1: Удалите старые файлы extrepo:
sudo rm -f /etc/apt/sources.list.d/extrepo_sury.sources
Шаг 2: Обновите список пакетов:
sudo apt update
8.3 Ошибка: PHP-файлы скачиваются, а не выполняются (Apache)
Симптом: При открытии .php-файла браузер предлагает его скачать.
Причина: Модуль PHP не загружен или используется неправильный обработчик.
Пошаговое решение:
Шаг 1: Убедитесь, что модуль включён:
sudo a2query -m php8.2
Шаг 2: Если нет — включите:
sudo a2enmod php8.2
sudo systemctl restart apache2
Шаг 3: Если используется PHP-FPM, проверьте, что конфигурация включена:
sudo a2enconf php8.2-fpm
sudo systemctl restart apache2
8.4 Ошибка: php8.2-fpm.sock not found (502 Bad Gateway)
Симптом: Nginx возвращает 502.
Причина: PHP-FPM не запущен.
Пошаговое решение:
Шаг 1: Запустите PHP-FPM:
sudo systemctl enable php8.2-fpm --now
Шаг 2: Проверьте, что сокет существует:
ls -l /run/php/php8.2-fpm.sock
8.5 Расширение не загружается
Симптом: Расширение установлено, но php -m его не показывает.
Причина: Не перезапущен обработчик PHP.
Пошаговое решение:
Для Apache mod_php:
sudo systemctl restart apache2
Для PHP-FPM:
sudo systemctl restart php8.2-fpm
Чек-лист: что проверить после установки
- [ ] PHP 8.2 установлен:
php --version→PHP 8.2.x - [ ] CLI версия правильная (если несколько версий):
update-alternatives --list php - [ ] Нужные расширения установлены:
php -m | grep mbstring(и другие) - [ ] Веб-интеграция работает: создайте
info.phpс<?php phpinfo(); ?>, откройте в браузере - [ ] PHP-FPM (если используется):
systemctl status php8.2-fpm→active (running) - [ ] Сокет существует (для Nginx):
ls -l /run/php/php8.2-fpm.sock
Удаление PHP 8.2
Удаление Debian APT-версии
sudo apt remove --purge php8.2* php-common
sudo apt autoremove
Удаление Sury-версии (Debian 13/11)
sudo apt remove --purge php8.2* php-common
sudo apt autoremove
sudo rm -f /etc/apt/sources.list.d/php.sources /usr/share/keyrings/deb.sury.org-php.gpg
sudo apt update
Часто задаваемые вопросы (FAQ)
Вопрос: Какая версия PHP в Debian 13 по умолчанию?
Ответ: Debian 13 (Trixie) содержит PHP 8.4. Для PHP 8.2 используйте репозиторий Sury.
Вопрос: Нужно ли удалять старую версию PHP перед установкой 8.2?
Ответ: Нет, можно установить несколько версий и переключаться через update-alternatives.
Вопрос: Почему пакет php8.2-json не устанавливается?
Ответ: JSON встроен в PHP 8.x, отдельный пакет не нужен.
Вопрос: Какой способ интеграции с веб-сервером выбрать?
Ответ: Для Nginx — только PHP-FPM. Для Apache: mod_php (проще) или PHP-FPM (лучше для продакшена).
Вопрос: Когда PHP 8.2 перестанет поддерживаться?
Ответ: Конец поддержки безопасности — 31 декабря 2026 года.
Заключение
Теперь PHP 8.2 установлен на вашем Debian. Вы можете запускать приложения, требующие именно эту версию.
Что дальше?
- Установите Composer для управления зависимостями
- Установите WordPress или Laravel
- Настройте веб-сервер для PHP