Диагностика и FAQ
Собрали типовые вопросы и способы быстро понять, что происходит. Почти все
команды ниже выполняются по SSH в каталоге сайта (там, где лежит файл
artisan).
Где искать логи
| Что случилось | Где смотреть |
|---|---|
| Ошибки сайта (500 и прочее) | storage/logs/laravel.log в каталоге сайта |
| Ход обновления CMS | журнал обновлений в админке |
| Фоновый воркер очередей | journalctl -u strangecraft-queue -n 100 |
| Веб‑сервер nginx | journalctl -u nginx, /var/log/nginx/error.log |
Свежие записи — в конце файла: tail -n 50 storage/logs/laravel.log.
Queue-воркер: зачем он и как проверить
Часть работы CMS выполняет в фоне: сборка лаунчера, импорт модпаков и загрузка zip‑сборок. Этим занимается воркер очередей.
При установке от root установщик сам создаёт systemd‑службу
strangecraft-queue. Проверить её:
systemctl status strangecraft-queue # работает ли
journalctl -u strangecraft-queue -n 100 # последние записи журнала
systemctl restart strangecraft-queue # перезапустить
Если установка была без root (шаред‑хостинг) или systemd недоступен, воркер нужно запустить вручную в каталоге сайта:
php artisan queue:work --sleep=3 --tries=1 --max-time=3600
После обновления кода воркер перечитывает его сам (CMS вызывает
php artisan queue:restart).
Полезные консольные команды
php artisan cms:db-health # замер скорости базы данных с подсказками
php artisan servers:ping # опрос игровых серверов
php artisan cache:clear # сброс кэша (если правили настройки прямо в БД)
php artisan config:clear # сброс кэша конфигурации
php artisan route:clear # сброс кэша маршрутов
Кнопка в админке пишет «нет прав root/sudo»
Некоторые кнопки («Применить к серверу» в почте, выпуск SSL‑сертификатов,
«открыть БД наружу», установка ноды панели) выполняют системные действия
и требуют повышенных прав. Чтобы сайт мог их делать безопасно, установщик
создаёт файл /etc/sudoers.d/cms-web: в нём веб‑пользователю разрешён
запуск строго перечисленных команд CMS (mail:apply, cert:issue,
cert:renew, cert:status, db:external, panel:install-node) — и ничего
больше.
Если кнопка жалуется на отсутствие прав:
-
файла
/etc/sudoers.d/cms-webнет или он устарел (например, сайт переносили в другой каталог). Лечится повторным запуском установщика —install.shбезопасен для существующей установки и заново настроит sudoers:cd /путь/к/сайту && sudo bash install.sh -
установка была без root (шаред‑хостинг) — таких прав у сайта нет и не будет; соответствующие действия выполняются вручную по инструкциям, которые печатает сама кнопка/страница.
Сборка лаунчера падает
Сборка идёт фоновым заданием, поэтому по порядку:
- Работает ли queue‑воркер? Без него задание сборки просто никогда не начнётся. См. раздел про воркер выше.
- Windows‑сборка требует Wine. На Linux без Wine сборка под Windows
невозможна — CMS честно сообщит: «Для Windows‑сборки на Linux нужен
Wine». Кнопка «Собрать» умеет доустановить Wine сама, но только если у
сайта есть права root/sudo. Иначе поставьте его вручную
(
apt install wine64 wine32) или соберите только linux‑цель. - Тулчейн можно поставить заранее при установке CMS — флаг
CMS_LAUNCHER_BUILD=1(см. раздел «Установка»). - Подробности падения — в журнале воркера:
journalctl -u strangecraft-queue -n 100.
Письма не уходят
Если вы ставили почтовый сервер (CMS_MAIL=1, модуль «Почта»):
-
После завершения
/setupконфигурация почты раскладывается командами (от root, в каталоге сайта):php artisan mail:server-config && php artisan mail:dkim-exportВ дальнейшем кнопка «Применить к серверу» в модуле «Почта» делает то же самое (через
mail:apply). -
Проверьте DNS‑записи домена. Модуль «Почта» показывает полный список записей, которые нужно добавить у регистратора: A‑запись хоста почты, MX, SPF (
v=spf1 mx ~all), DMARC, DKIM (TXT‑запись с публичным ключом) и PTR (обратная запись — настраивается у хостера VPS). Без SPF/DKIM/DMARC письма улетают в спам или отклоняются.
Если письма отправляются через внешний SMTP — проверьте его реквизиты в
.env и смотрите ошибку в storage/logs/laravel.log.
Игровой сервер «не выходит на связь»
Статус связи виден в админке: Серверы → ваш сервер → блок «Плагин StrangeCraftCore». Плагин сам регулярно шлёт сайту heartbeat; если статус жёлтый («токен выпущен, плагин ещё не выходил на связь») или сверка давняя:
- Токен. Убедитесь, что в конфиге плагина вставлен именно тот токен, который вы сгенерировали, целиком. После «Отозвать» или «Перевыпустить токен» старый токен перестаёт работать — обновите его в конфиге плагина и перезапустите игровой сервер.
- Сеть. Игровой сервер должен уметь достучаться до сайта по его адресу
(APP_URL) — проверьте с машины сервера:
curl -I https://ваш-домен. - Частота. Интервал heartbeat настраивается там же в админке (5–300 секунд) — при большом интервале «последняя сверка» и должна быть нечастой.
- Ошибки на стороне плагина смотрите в консоли/логах игрового сервера.
Лимиты загрузки файлов
Если загрузка файла (логотип, темы, jar, zip) обрывается или сайт отвечает ошибкой «413» / «файл слишком большой»:
- nginx: установщик задаёт
client_max_body_size 10mв/etc/nginx/sites-available/strangecraft— увеличьте значение и перезапустите nginx (systemctl reload nginx); - PHP: проверьте
upload_max_filesizeиpost_max_sizeв php.ini — для крупных файлов их тоже нужно поднять (админка Лаунчера сама напоминает об этом при загрузке больших сборок).
Большие zip‑сборки лаунчера кнопка «Загрузить zip» шлёт частями по 20 МБ,
поэтому гигабайтные паки проходят и без экстремальных лимитов; совсем
большие можно загрузить по SFTP и импортировать командой
php artisan launcher:import-build <slug> <путь к zip или каталогу>.
Прочие частые вопросы
404 на /setup. Это нормально: после завершения установки мастер
отключается навсегда. Если же CMS ещё не установлена — значит, не работает
rewrite: проверьте, что корень сайта указывает на каталог …/public.
500 на всех страницах после ручных манипуляций. Обычно устаревший кэш:
php artisan route:clear && php artisan config:clear
Запускайте от пользователя сайта, не от root.
Сайт «не видит» правки, сделанные напрямую в базе данных. Настройки,
модули и серверы читаются из кэша — выполните php artisan cache:clear.
После работы под root сайт не может писать файлы. Верните владельца:
chown -R <пользователь-сайта>:<группа> storage bootstrap/cache
и впредь обновляйтесь кнопкой в админке, а не вручную от root.
Сайт отдаёт 403 сразу после установки. Веб‑серверу не хватает права
входа в каталоги на пути к сайту: namei -l /путь/к/сайту/public/index.php
покажет цепочку; каталогам без x для «остальных» выполните chmod o+x.
На своём сервере сайт лучше держать в /var/www/….
Как настроить резервные копии?
Никак — они уже работают: ночной бэкап БД и файлов с ротацией включён по
умолчанию (Админка → Бэкапы, там же ручное создание и скачивание).
Восстановление: php artisan cms:restore <файл> на сервере.
Продвигается ли сайт в поисковиках?
Да: CMS отдаёт meta-теги и OG-разметку, карту сайта /sitemap.xml и
robots.txt из коробки. Заполните «Описание сайта» и OG-картинку в
Настройках → Сайт, а у новостей — поле «SEO-описание».
Где посмотреть аптайм серверов?
Публичная страница /status: текущий онлайн, аптайм за 24 часа и 7 дней,
график. Ссылка есть в подвале сайта.