laravel — `php artisan down` выбрасывает uncaught 503 и выдает страницу с ошибкой

Редактировать: Принятая проблема на GitHub https://github.com/octobercms/october/issues/2830


Я использую OctoberCMS, которая основана на фреймворке Laravel PHP.
(Я новичок в обоих).

В конечном счете, я пытаюсь составить максимально возможную часть процесса обновления сайта. То есть, обновить / обновить тестирование и живые сайты и загрузить мой новый код. Это предполагает возможность перевода сайта в режим обслуживания из командной строки.

Каталог верхнего уровня для моего сайта (/var/www/website/) содержит сценарий php ремесленника.

Бег php artisan list Я получил:

Available commands:
down    Put the application into maintenance mode
up      Bring the application out of maintenance mode

В бэкэнде OctoberCMS я могу перевести внешний интерфейс в режим обслуживания, и выбранная страница обслуживания отображается, как и ожидалось.

Когда я вхожу php artisan down в консоли я получаю Application is now in maintenance mode., как и ожидалось. Но когда я перезагружаю сайт, я получаю следующую ошибку:

К сожалению, произошла необработанная ошибка. Пожалуйста, смотрите детали ниже.
.../vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php line 41
Тип: Не определено
Исключение: Symfony\Component\HttpKernel\Exception\HttpException

\*
\* @throws \Symfony\Component\HttpKernel\Exception\HttpException
*/
public function handle($request, Closure $next)
{
if ($this->app->isDownForMaintenance()) {
throw new HttpException(503);
}
return $next($request);
}

Похоже, что Laravel / Symfony делает то, что должен, и бросает 503 Service Unavailable, но нечего ловить и рендерить страницу обслуживания.

Итак, два вопроса
1) Это ошибка? Если так, то в Ларавеле или октябре? Или я что-то не так сделал — настройка конфига …?
2) Предполагая, что это не будет исправлено в ближайшее время, как и где я должен поймать HttpException(503) и дать страницу обслуживания?

Есть то, что может быть ответом в Stackoverflow > '503 can't be overridden in L5.1', который, кажется, предлагает редактирование / переопределение public function handle($request, Closure $next) с try/catch/return-if-503 последовательность. Но стоит ли переопределять функцию CMS / framework? Если да, то как и где?

я прочитал OctoberCMS> docs> services> Ошибки & логирование и, несмотря на надежду на более простое решение, я бы создал плагин для решения проблемы, если это лучший / единственный / идеальный способ. Хотя создание плагина для отлова того, что должно быть уже поймано, кажется излишним.

Это выглядит как способ сделать это Laravel — передавайте аргументы php ремесленнику, но я не уверен, чтобы попытаться это.


Сервер под ключ LAMP 14.1

Октябрьская система сборки 414

php --version
PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 08:50:21)

php artisan --version
Laravel Framework version 5.1.46 (LTS)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]