phpBB — это одна из самых популярных бесплатных систем управления форумами с открытым исходным кодом, написанная на PHP. Она идеально подходит для создания сообщества, форума поддержки или дискуссионной площадки любой сложности.
В этом руководстве я покажу полную установку phpBB 3.3.x на Debian с веб-сервером Nginx, базой данных MariaDB и PHP-FPM.
⚠️ Важное примечание по версиям PHP:
| Релиз Debian | PHP по умолчанию | Совместимость с phpBB 3.3.x | Действие |
|---|---|---|---|
| Debian 13 (Trixie) | PHP 8.4 | ❌ Не совместим (phpBB 3.3.x требует PHP ≤ 8.3) | Установить PHP 8.3 отдельно |
| Debian 12 (Bookworm) | PHP 8.2 | ✅ Совместим | Использовать PHP 8.2 по умолчанию |
| Debian 11 (Bullseye) | PHP 7.4 | ✅ Совместим | Использовать PHP 7.4 по умолчанию |
Если вы хотите использовать PHP 8.4 на Debian 13 — вам нужно устанавливать phpBB 4.x (более новую ветку). Это руководство для phpBB 3.3.x, поэтому на Debian 13 мы установим PHP 8.3 из стороннего репозитория.
Предварительные требования
Перед установкой убедитесь, что:
- У вас есть доменное имя, привязанное к IP-адресу сервера (для HTTPS)
- Открыты порты 80 (HTTP) и 443 (HTTPS) в файрволе
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Установка Nginx, MariaDB и вспомогательных утилит
Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -y
Шаг 2: Установите базовые пакеты
sudo apt install -y nginx mariadb-server curl wget unzip
Что делает:
nginx— веб-серверmariadb-server— база данныхcurl,wget,unzip— для скачивания и распаковки phpBB
Шаг 3: Проверьте, что сервисы работают
Nginx:
systemctl status nginx --no-pager --lines=6
✅ Ожидаемый вывод: Active: active (running)
MariaDB:
systemctl status mariadb --no-pager --lines=6
✅ Ожидаемый вывод: Active: active (running)
Если какой-то сервис не запущен:
sudo systemctl enable --now nginx mariadb
Установка PHP (в зависимости от версии Debian)
Для Debian 13 (Trixie) — установка PHP 8.3
Debian 13 по умолчанию использует PHP 8.4, но phpBB 3.3.x требует PHP 8.3 или старше. Поэтому установим PHP 8.3 из репозитория Sury.
Шаг 1: Установите необходимые утилиты
sudo apt install -y ca-certificates curl gpg
Шаг 2: Добавьте GPG-ключ репозитория Sury
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sury-php.gpg
Примечание: Этот способ добавления ключа рабочий, но в других статьях мы используем другой путь (через wget или через ключ с --dearmor). Это не ошибка, просто другой метод.
Шаг 3: Добавьте репозиторий Sury (DEB822 формат)
echo "Types: deb
URIs: https://packages.sury.org/php
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: main
Signed-By: /usr/share/keyrings/sury-php.gpg" | sudo tee /etc/apt/sources.list.d/sury-php.sources
Шаг 4: Обновите список пакетов и установите PHP 8.3
sudo apt update
sudo apt install -y php8.3-fpm php8.3-cli php8.3-mysql php8.3-mbstring php8.3-xml
Шаг 5: Установите переменную версии PHP
export PHP_VERSION=8.3
Для Debian 12 (Bookworm) — PHP 8.2 из репозиториев
sudo apt install -y php-fpm php-cli php-mysql php-mbstring php-xml
export PHP_VERSION=8.2
Для Debian 11 (Bullseye) — PHP 7.4 из репозиториев
sudo apt install -y php-fpm php-cli php-mysql php-mbstring php-xml
export PHP_VERSION=7.4
Проверка PHP-FPM и модулей
Проверьте версию PHP:
php$PHP_VERSION --version | head -n 1
✅ Ожидаемый вывод: PHP 8.3.x (Debian 13), PHP 8.2.x (Debian 12) или PHP 7.4.x (Debian 11)
Проверьте статус PHP-FPM:
systemctl status php$PHP_VERSION-fpm --no-pager --lines=6
✅ Ожидаемый вывод: Active: active (running)
Проверьте, что сокет PHP-FPM доступен:
readlink -f /run/php/php-fpm.sock
✅ Ожидаемый вывод: /run/php/php8.3-fpm.sock (или другой версии)
Проверьте необходимые модули PHP:
php$PHP_VERSION -m | grep -E 'json|mbstring|xml|mysqli'
✅ Ожидаемый вывод: строки json, libxml, mbstring, mysqli, xml, xmlreader, xmlwriter.
Настройка PHP для phpBB
Отредактируйте конфигурационный файл PHP-FPM:
sudo nano /etc/php/$PHP_VERSION/fpm/php.ini
Найдите и измените следующие параметры:
max_execution_time = 180
max_input_time = 180
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
Сохраните файл (Ctrl+O, Enter, Ctrl+X).
Перезапустите PHP-FPM:
sudo systemctl restart php$PHP_VERSION-fpm
Скачивание и настройка phpBB
Шаг 1: Определите последнюю версию phpBB 3.3.x
PHPBB_TAG="$(curl -fsSL https://api.github.com/repos/phpbb/phpbb/tags?per_page=20 | grep -oE '"name": "release-3\.3\.[0-9]+"' | head -n 1 | cut -d '"' -f4)"
PHPBB_VERSION="${PHPBB_TAG#release-}"
printf '%s\n' "$PHPBB_VERSION"
✅ Ожидаемый вывод: 3.3.15 (или новее)
Шаг 2: Скачайте и распакуйте архив
cd /tmp
wget https://download.phpbb.com/pub/release/3.3/$PHPBB_VERSION/phpBB-$PHPBB_VERSION.zip
unzip phpBB-$PHPBB_VERSION.zip
sudo mv phpBB3 /var/www/html/phpbb
Шаг 3: Установите права и владельца
sudo chown -R www-data:www-data /var/www/html/phpbb
sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;
Специальные права для директорий, в которые phpBB пишет данные:
sudo chmod 777 /var/www/html/phpbb/cache
sudo chmod 777 /var/www/html/phpbb/files
sudo chmod 777 /var/www/html/phpbb/store
sudo chmod 777 /var/www/html/phpbb/images/avatars/upload
Шаг 4: Проверьте, что файлы на месте
ls -ld /var/www/html/phpbb
ls -l /var/www/html/phpbb/bin/phpbbcli.php
✅ Ожидаемый вывод: директория существует, файл phpbbcli.php присутствует.
Создание базы данных для phpBB
Шаг 1: Войдите в MariaDB
sudo mariadb
Шаг 2: Создайте базу данных
CREATE DATABASE phpbb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Шаг 3: Создайте пользователя
Замените 'strong-password-here' на надёжный пароль:
CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'strong-password-here';
Шаг 4: Дайте права пользователю
GRANT ALL PRIVILEGES ON phpbb.* TO 'phpbbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Шаг 5: Проверьте, что база данных и пользователь созданы
sudo mariadb -e "SHOW DATABASES LIKE 'phpbb'; SELECT user, host FROM mysql.user WHERE user = 'phpbbuser';"
✅ Ожидаемый вывод:
Database (phpbb)
phpbb
User Host
phpbbuser localhost
Настройка Nginx для phpBB
Шаг 1: Создайте конфигурационный файл
Замените forums.example.com на ваше реальное доменное имя:
sudo nano /etc/nginx/sites-available/phpbb.conf
Содержимое файла:
server {
listen 80;
listen [::]:80;
server_name forums.example.com;
root /var/www/html/phpbb;
index index.php index.html index.htm;
access_log /var/log/nginx/phpbb.access.log;
error_log /var/log/nginx/phpbb.error.log;
location / {
try_files $uri $uri/ @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location /install/ {
try_files $uri $uri/ @rewrite_installapp =404;
}
location @rewrite_installapp {
rewrite ^(.*)$ /install/app.php/$1 last;
}
location ~ \.php(/|$) {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
location ~ /(config|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
deny all;
internal;
}
location ~ /\.svn|/\.git {
deny all;
internal;
}
}
Шаг 2: Включите сайт и проверьте конфигурацию
sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/
sudo nginx -t
✅ Ожидаемый вывод: syntax is ok и test is successful
Шаг 3: Перезагрузите Nginx
sudo systemctl reload nginx
Настройка HTTPS с Let’s Encrypt (рекомендуется)
Если ваше доменное имя уже указывает на сервер, установите SSL-сертификат:
sudo apt install -y python3-certbot-nginx
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com
Замените:
you@example.com— ваш emailforums.example.com— ваше доменное имя
Настройка UFW (файрвола)
Если вы используете UFW, откройте необходимые порты:
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Проверьте статус:
sudo ufw status
Завершение установки phpBB через веб-интерфейс
Шаг 1: Откройте установщик в браузере
Перейдите по адресу:
http://forums.example.com/install/app.php
(или https://..., если настроили SSL)
Шаг 2: Пройдите этапы установки
- Нажмите «Install» на первом экране.
- Проверьте требования — все должно быть зелёным.
- Создайте администратора — придумайте логин, пароль и email.
- Настройте базу данных:
- Тип:
MySQL with MySQLi Extension - Сервер:
localhost - Имя БД:
phpbb - Пользователь:
phpbbuser - Пароль: (тот, что вы задали)
- Префикс таблиц:
phpbb_(оставьте по умолчанию)
- Настройте форум — название, описание, язык.
Шаг 3: После успешной установки — удалите папку /install
⚠️ Критически важно! phpBB заблокирует работу форума, пока папка install не будет удалена.
sudo rm -rf /var/www/html/phpbb/install
Настройка cron для phpBB
phpBB может выполнять фоновые задачи через системный cron (рекомендуется вместо триггеров от посетителей).
printf '%s\n' '*/5 * * * * www-data /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run >/dev/null 2>&1' | sudo tee /etc/cron.d/phpbb > /dev/null
sudo chmod 644 /etc/cron.d/phpbb
Проверьте, что cron создан:
sudo cat /etc/cron.d/phpbb
✅ Ожидаемый вывод: строка с */5 * * * * www-data ...
После этого в панели администратора phpBB (ACP) переключите выполнение задач на системный cron.
Решение типичных проблем
8.1 Ошибка: Unit php-fpm.service could not be found
Симптом: При попытке проверить статус PHP-FPM появляется ошибка:
Unit php-fpm.service could not be found.
Причина: Debian использует версионные названия сервисов PHP-FPM (php8.3-fpm, php8.2-fpm, php7.4-fpm), а не общее php-fpm.
Пошаговое решение:
Шаг 1: Узнайте, какая версия PHP у вас установлена:
PHP_VERSION="$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')"
echo $PHP_VERSION
Шаг 2: Проверьте статус правильного сервиса:
systemctl status php$PHP_VERSION-fpm
Шаг 3: В конфигурации Nginx используйте общий путь к сокету, который не зависит от версии:
fastcgi_pass unix:/run/php/php-fpm.sock;
Debian автоматически создаёт символическую ссылку php-fpm.sock на актуальную версию.
8.2 Ошибка: Установщик phpBB не видит расширения PHP
Симптом: При проверке требований установщик показывает красным, что отсутствуют mbstring, xml или mysqli.
Причина: Не установлены соответствующие пакеты PHP.
Пошаговое решение:
Шаг 1: Установите недостающие расширения:
sudo apt install -y php$PHP_VERSION-mbstring php$PHP_VERSION-xml php$PHP_VERSION-mysql
Шаг 2: Перезапустите PHP-FPM:
sudo systemctl restart php$PHP_VERSION-fpm
Шаг 3: Проверьте, что расширения загружены:
php$PHP_VERSION -m | grep -E 'mbstring|xml|mysqli'
8.3 Ошибка: База данных не создаётся (Access denied)
Симптом: Установщик phpBB выдаёт ошибку подключения к базе данных.
Причина: Неверные данные в поле DB_HOST или пароль не совпадает.
Пошаговое решение:
Шаг 1: Проверьте, что база данных создана:
sudo mariadb -e "SHOW DATABASES LIKE 'phpbb';"
Шаг 2: Проверьте, что пользователь существует:
sudo mariadb -e "SELECT user, host FROM mysql.user WHERE user = 'phpbbuser';"
Шаг 3: Если пользователя нет — создайте его заново (см. раздел «Создание базы данных»).
Шаг 4: В установщике убедитесь, что в поле Database server hostname указано localhost (или 127.0.0.1).
8.4 Ошибка: 403 Forbidden или File not found
Симптом: При открытии форума появляется ошибка 403 или 404.
Причина: Неправильные права на файлы или отсутствует индексный файл.
Пошаговое решение:
Шаг 1: Проверьте, что файлы phpBB на месте:
ls -la /var/www/html/phpbb/index.php
Шаг 2: Проверьте владельца файлов:
ls -ld /var/www/html/phpbb
Должно быть www-data:www-data.
Шаг 3: Если права неверные — выполните:
sudo chown -R www-data:www-data /var/www/html/phpbb
sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;
Шаг 4: Проверьте конфигурацию Nginx:
sudo nginx -t
sudo systemctl reload nginx
8.5 Ошибка: «The installer directory is still present»
Симптом: После установки форум не открывается, а вместо него появляется сообщение:
The installer directory is still present. Please remove it.
Причина: Вы не удалили папку /install после завершения установки.
Пошаговое решение:
Удалите папку установщика:
sudo rm -rf /var/www/html/phpbb/install
Обновите страницу — форум должен заработать.
Чек-лист: что проверить после установки
- [ ] Nginx работает:
systemctl status nginx→active (running) - [ ] MariaDB работает:
systemctl status mariadb→active (running) - [ ] PHP-FPM работает:
systemctl status php$PHP_VERSION-fpm→active (running) - [ ] Сокет PHP-FPM существует:
test -S /run/php/php-fpm.sock && echo "OK" - [ ] База данных создана:
sudo mariadb -e "SHOW DATABASES LIKE 'phpbb';" - [ ] Пользователь БД создан:
sudo mariadb -e "SELECT user FROM mysql.user WHERE user = 'phpbbuser';" - [ ] Файлы phpBB на месте:
ls /var/www/html/phpbb/index.php - [ ] Права на файлы:
ls -ld /var/www/html/phpbb→www-data:www-data - [ ] Директории для записи доступны:
ls -ld /var/www/html/phpbb/cache→drwxrwxrwx - [ ] Папка /install удалена:
test ! -d /var/www/html/phpbb/install && echo "OK" - [ ] Cron настроен:
sudo cat /etc/cron.d/phpbbпоказывает строку сwww-data - [ ] HTTPS работает (если настроен): открытие
https://ваш-домен→ зелёный замок
Удаление phpBB (полная очистка)
Шаг 1: Удалите файлы phpBB
sudo rm -rf /var/www/html/phpbb
Шаг 2: Удалите базу данных и пользователя
sudo mariadb -e "DROP DATABASE IF EXISTS phpbb; DROP USER IF EXISTS 'phpbbuser'@'localhost'; FLUSH PRIVILEGES;"
Шаг 3: Удалите конфигурацию Nginx
sudo rm -f /etc/nginx/sites-enabled/phpbb.conf
sudo rm -f /etc/nginx/sites-available/phpbb.conf
sudo systemctl reload nginx
Шаг 4: Удалите SSL-сертификат (если создавали)
sudo certbot delete --cert-name forums.example.com
Шаг 5: Удалите cron-задачу
sudo rm -f /etc/cron.d/phpbb
Шаг 6: Удалите пакеты LEMP (опционально — только если больше не нужны)
sudo apt remove --purge nginx mariadb-server php$PHP_VERSION-fpm php$PHP_VERSION-cli php$PHP_VERSION-mysql php$PHP_VERSION-mbstring php$PHP_VERSION-xml -y
sudo apt autoremove -y
⚠️ Внимание: Это удалит все сайты и базы данных на сервере. Выполняйте, только если сервер используется исключительно для этого форума.
Часто задаваемые вопросы (FAQ)
Вопрос: Почему нельзя использовать PHP 8.4 на Debian 13 с phpBB 3.3.x?
Ответ: Официальная документация phpBB 3.3.15 указывает максимальную версию PHP 8.3. С PHP 8.4 могут возникать ошибки совместимости. Для PHP 8.4 используйте phpBB 4.x.
Вопрос: Как узнать, какая версия PHP у меня активна?
Ответ: php -v в командной строке.
Вопрос: Нужно ли устанавливать phpMyAdmin для управления базой данных?
Ответ: Не обязательно. Все операции можно выполнять через командную строку sudo mariadb. Но если хотите, установите phpMyAdmin отдельно.
Вопрос: Как обновить phpBB до новой версии?
Ответ: Скачайте новый архив, распакуйте поверх существующих файлов (кроме config.php), затем запустите http://ваш-форум/install/app.php/update.
Вопрос: Поддерживает ли phpBB русский язык?
Ответ: Да. После установки вы можете скачать языковой пакет с официального сайта phpBB и установить его в панели администратора.
Заключение
Теперь phpBB установлен на вашем Debian с Nginx, MariaDB и PHP-FPM. Вы можете:
- Управлять форумом через панель администратора (ACP)
- Настраивать права пользователей, разделы и темы
- Устанавливать расширения
Что дальше?
- Изучите официальную документацию phpBB
- Настройте резервное копирование базы данных и файлов форума
- Установите phpMyAdmin для удобного управления базой данных
- Настройте мониторинг сервера для отслеживания нагрузки