SuiteSupport

Белый экран в SuiteCRM: с чего начинать

Вместо системы открывается пустая белая страница. Ошибки нет, подсказки нет, в журнале браузера пусто. Разбираем по порядку — от самого частого к самому редкому.

Белый экран — это не отдельная поломка, а способ, которым PHP сообщает о фатальной ошибке, когда показ ошибок выключен. Задача первого шага — заставить систему сказать, что именно случилось.

1. Посмотрите журналы, а не экран

Три места, где лежит настоящая причина:

Смотреть их удобнее всего в момент, когда вы обновляете страницу:

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: из языка убирают функции, на которых он держался.

Страдают от этого обычно не сама SuiteCRM, а старые сторонние модули и самописные доработки в папке custom. Проверить догадку просто: временно переключите сайт на прежнюю версию PHP. Открылось — значит дело в совместимости кода, и чинить надо код, а не сервер.

Возвращаться на старый PHP как решение — плохая идея: версии без поддержки перестают получать исправления безопасности, а CRM обычно содержит всю клиентскую базу компании.

6. Если ничего из этого не помогло

Значит причина в конкретной доработке, в повреждённой базе или в самой установке. Здесь уже нужен человек, который читает код и журналы. Мы занимаемся именно этим: напишите нам, что вы уже пробовали, — повторять то же самое не будем.