Unable to write config.php / The config.php file is not writable / Не удалось подключиться к базе данных
#Как работает установка
Установщик phpBB (install/app.php) создаёт файл config.php в корне форума с параметрами подключения к базе. Если файла нет, он будет создан; если он уже существует и не пуст, phpBB решит, что форум установлен, и перенаправит на сам форум или выдаст ошибку. Проблемы возникают в трёх случаях: нет прав на запись в корень форума, в config.php остались данные прошлой установки, либо данные подключения к базе неверны (хост, имя, пользователь, пароль, префикс таблиц). Сначала определите, на каком шаге появляется сообщение.
#Причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет прав записи на config.phpФайл недоступен. | Unable to write. | Определите пользователя PHP и точечно настройте доступ на время установки; не назначайте 666/777. |
| Остатки старого config.phpНепустой файл. | Редирект на форум. | Для переноса восстановите действующий config.php из копии; для новой установки соблюдайте процедуру своей версии. |
| Неверные данные БДОпечатка. | Невозможно подключиться. | Проверьте mysql. |
| Неверный префикс таблицОстались таблицы. | Таблицы уже существуют. | При новой установке выберите незанятый префикс после проверки таблиц; существующую базу не очищайте. |
| Старая версия PHPНесовместимо. | Ошибка требований. | Обновите PHP. |
| Отсутствует расширениеmysqli. | Нет драйвера. | Включите модуль. |
#Порядок
- Убедитесь, что config.php есть в корне нужного форумаПосле установки phpBB откройте корень форума через файловый менеджер хостинга или SSH и убедитесь, что рядом с
common.phpсуществуетconfig.php. Сверьте реальный путь из сообщения об ошибке с документ-корнем сайта: при переносе файлов иногда копируется только часть каталога или меняется корень виртуального хоста. - Отличите новую установку от переноса существующей базыЕсли
config.phpотсутствует, выясните, была ли завершена штатная установка. Для нового форума запустите установщик phpBB согласно документации своей версии, указав существующую базу и пользователя; для перенесённого форума восстановите именно егоconfig.phpиз резервной копии. Не создавайте пустой файл с фиктивными реквизитами на работающей базе. - Проверьте реквизиты подключения в config.phpОткройте
config.phpдля чтения в редакторе панели и проверьте значения$dbhost,$dbname,$dbuserи правильность PHP-синтаксиса. Пароль не выводите в публичные ошибки или отчёт; при необходимости обновите реквизиты одновременно с настройками учётной записи БД. - Проверьте доступность config.php для веб-PHP без прав 777Проверьте права доступа к
config.phpи его родительскому каталогу черезls -lиnamei -l, если есть SSH. PHP должен читать конфигурацию, но её нельзя делать доступной на запись всем пользователям сервера. Восстановите права по владельцу, группе и требованиям версии phpBB, не используйтеchmod 777. - Проверьте работу форума после восстановления файлаПосле восстановления перезагрузите главную страницу и
/adm/, проверьте журнал PHP на отсутствие ошибок чтения и подключения к базе. Если файл есть, но phpBB сообщает об ошибке, уточните путь виртуального хоста и проверьте синтаксисphp -l config.phpв совместимой версии PHP; не удаляйте базу данных для устранения отсутствующего файла. - Сверьте полноту переноса и версии phpBB и PHPЕсли форум переносился на новый хостинг, сравните на старом и новом сервере версию PHP и состав расширений, убедитесь, что весь каталог phpBB скопирован. Очистку кеша проводите только после копирования настроек и проверки текущей версии форума; несоответствие файлов разных выпусков требует согласованного обновления.
- Убедитесь, что конфигурация не доступна посетителямСохраните контрольную копию восстановленного
config.phpотдельно от публичного каталога и проверьте, что веб-сервер не отдаёт его исходный код как текст. Если браузер предлагает скачать PHP-файл, немедленно ограничьте доступ к сайту: это признак неработающего обработчика PHP и возможной утечки паролей. - Проверьте ограничения PHP и системные политики доступаЕсли после проверок файл недоступен только из PHP, проверьте ограничения
open_basedir, AppArmor/SELinux и пользователя фактического пула PHP-FPM через панель. Перед изменениями соберите имя файла, текст ошибки, версии PHP/phpBB; при отсутствии доступа администратора передайте эту информацию поддержке хостинга. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Что делать при обновлении
При обновлении существующего форума не удаляйте config.php. Загрузите новые файлы поверх, сохранив config.php, files/, images/ и store/, затем откройте install/app.php → «Обновить». Перед этим сделайте копию файлов и базы командой mysqldump phpbb > phpbb.sql.