Белый экран в SuiteCRM: с чего начинать
Вместо системы открывается пустая белая страница. Ошибки нет, подсказки нет, в журнале браузера пусто. Разбираем по порядку — от самого частого к самому редкому.
Белый экран — это не отдельная поломка, а способ, которым PHP сообщает о фатальной ошибке, когда показ ошибок выключен. Задача первого шага — заставить систему сказать, что именно случилось.
1. Посмотрите журналы, а не экран
Три места, где лежит настоящая причина:
- Журнал самой SuiteCRM — файл
suitecrm.logв корне установки. У старых SugarCRM он называетсяsugarcrm.log. - Журнал ошибок PHP — путь задан в
php.iniпараметромerror_log. Если он пуст, ошибки уходят в журнал веб-сервера. - Журнал веб-сервера —
/var/log/nginx/error.logили/var/log/apache2/error.log.
Смотреть их удобнее всего в момент, когда вы обновляете страницу:
tail -f /var/log/nginx/error.log suitecrm.log
2. Включите показ ошибок — временно
Если журналы молчат, заставьте PHP говорить. В config_override.php
в корне установки:
<?php
$sugar_config['logger']['level'] = 'debug';
$sugar_config['show_log'] = true;
И на уровне PHP — в php.ini или в настройках сайта:
display_errors = On
error_reporting = E_ALL
Обязательно верните display_errors = Off после того, как
найдёте причину. Включённый показ ошибок на рабочей системе выдаёт наружу
пути к файлам и куски кода.
3. Проверьте права на файлы
Самая частая причина белого экрана после переезда, восстановления из резервной копии или обновления — веб-сервер не может писать в свои рабочие папки. SuiteCRM при этом не ругается, а молча падает.
Права, с которых стоит начать (выполнять из корня установки):
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R 775 cache custom modules themes data upload
chown -R www-data:www-data .
Имя пользователя веб-сервера отличается: в Debian и Ubuntu это
www-data, в CentOS и RHEL — apache или
nginx. Посмотреть, под кем он работает:
ps aux | grep -E 'nginx|apache|php-fpm' | head
4. Очистите кэш и пересоберите
Если система хотя бы частично открывается, зайдите в Администрирование → Ремонт → Быстрый ремонт и перестроение (Quick Repair and Rebuild). Это первый шаг почти при любой неисправности: он приводит схему базы в соответствие с описаниями полей и сбрасывает накопленный кэш.
Если система не открывается вовсе, кэш можно снести руками — он соберётся заново:
rm -rf cache/*
5. Если экран побелел сразу после обновления PHP
Это отдельный случай, и лечится он не правами. Старый код перестаёт работать на новых версиях PHP: из языка убирают функции, на которых он держался.
- PHP 7 убрал функции семейства
eregиmysql_*. - PHP 8 убрал
create_functionиeach, ужесточил передачу аргументов.
Страдают от этого обычно не сама SuiteCRM, а старые сторонние модули
и самописные доработки в папке custom. Проверить догадку просто:
временно переключите сайт на прежнюю версию PHP. Открылось — значит дело
в совместимости кода, и чинить надо код, а не сервер.
Возвращаться на старый PHP как решение — плохая идея: версии без поддержки перестают получать исправления безопасности, а CRM обычно содержит всю клиентскую базу компании.
6. Если ничего из этого не помогло
Значит причина в конкретной доработке, в повреждённой базе или в самой установке. Здесь уже нужен человек, который читает код и журналы. Мы занимаемся именно этим: напишите нам, что вы уже пробовали, — повторять то же самое не будем.