General Error / Fatal error: Class not found / Unable to open cache file
#Типичные проявления
После обновления phpBB форум показывает белый экран, «General Error», ошибки в шаблонах Twig или сообщения о неизвестных классах. Причины: старый кеш в cache/production/, который не совпадает с новыми файлами; остатки устаревших файлов от прошлой версии; неполная загрузка файлов; несовместимые расширения; права на каталоги кеша; новая версия PHP. Очистка кеша и проверка файлов решают большинство проблем.
#Причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Устаревший кешПосле обновления. | General Error. | Очистите cache/production. |
| Не завершена миграция БДОбновление прервано. | Ошибки базы. | db:migrate. |
| Старые файлыНе удалены. | Конфликт классов. | Удалите устаревшие файлы. |
| Расширения несовместимыСтарые версии. | Ошибка после включения. | Обновите или отключите. |
| Нет прав на cacheЗапись запрещена. | Unable to open cache file. | chmod 775. |
| Новая версия PHPНе поддерживается. | Fatal error. | Проверьте требования. |
#Порядок
- Откройте админ-панельЕсли после обновления phpBB ACP ещё доступна, откройте «Общие» → «Очистить кэш» и подтвердите действие. Убедитесь, что на сайте исчезла старая разметка/ошибка; это штатный способ для большинства случаев устаревшего шаблона. Не удаляйте каталог форума целиком.
- Если админка недоступна, удалите содержимое cache/production/ вручнуюЕсли ACP недоступна, через файловый менеджер сохраните копию директории
cacheи уточните версию форума. Для phpBB 3.x запрещено удалять защитные файлыindex.htm,.htaccessи служебные каталоги в обход указаний версии. Предпочтите поддерживаемую команду очистки, если доступен PHP CLI и консольное приложение форума. - Проверьте права на cache/Проверьте по SSH
ls -ld cacheи доступность каталога на запись пользователю PHP-FPM; именно этот пользователь может отличаться отwww-data. Не выполняйтеchmod -R 775 cacheдо проверки владельца, группы и доступа других сайтов; исправляйте только доказанную ошибку прав. - Убедитесь, что все файлы нового релиза загружены полностьюСравните загруженные файлы phpBB с официальным пакетом той же версии: после неполной передачи по FTP форум может смешивать старые и новые классы. Если обновление прервалось, повторите штатную процедуру обновления с резервной копией, не перетирая
config.php, пользовательские файлы и вложения. - Удалите устаревшие файлы по списку из пакета обновленияУдаление устаревших файлов phpBB допустимо только по списку, указанному для конкретного перехода версии. Не удаляйте незнакомые каталоги и модификации вручную; сначала сохраните полный архив форума и базы, затем убедитесь, что обновлённая версия работает на стенде.
- Временно отключите расширенияЕсли ошибка началась после обновления расширения, откройте ACP → «Настройка → Управление расширениями» и отключите конкретное несовместимое расширение. Если ACP недоступна, делайте аварийное отключение только по официальной инструкции phpBB и после копии состояния расширений; массовое переименование всего
extможет затронуть множество функций. - Проверьте журнал ошибок и версию PHPПроверьте PHP Fatal error в логах хостинга и требования установленной версии phpBB к PHP/расширениям. Версия CLI (
php -v) может отличаться от PHP-FPM сайта; сверяйте веб-версию в панели и проверяйте логи непосредственно проблемного запроса. - Выполните обновление базы данных через install/app.php, если оно не былоЕсли после обновления требуются миграции базы данных, запустите штатный инструмент для конкретной версии phpBB в утверждённом порядке, предварительно сохранив SQL-дамп. Не выполняйте произвольную
db:migrateна боевой базе до проверки совместимости. Проверьте вход, поиск, сообщения и вложения после обновления. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Как избежать повторения
Обновляйте phpBB по официальной инструкции: сначала полная копия, затем замена файлов (кроме config.php, files/, store/, images/, ext/), затем запуск install/app.php → «Обновить», удаление каталога install/ и очистка кеша. Обновляйте расширения до версий, совместимых с новой версией phpBB, на https://www.phpbb.com/customise/db/extensions-36 .