You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel服务器执行down命令后无法通过Artisan命令重启的问题

问题原因与解决方案

问题根源

当你通过路由执行Artisan::call('down')后,Laravel进入维护模式,默认会拦截所有HTTP请求直接返回503错误。此时访问/Turn_Up_Desk2929时,请求还没走到你的路由逻辑,就被维护模式的中间件拦截了,自然无法触发up命令恢复网站。

解决方案

方案1:进入维护模式时指定允许访问的路由

修改停机路由,调用down命令时添加--allow参数,把恢复路由加入白名单:

Route::get('/shotdown_website', function () {
    // 允许恢复路由在维护模式下正常访问
    Artisan::call('down', ['--allow' => '/Turn_Up_Desk2929']);
    return "Website Down successfully";
});

下次执行停机操作后,访问/Turn_Up_Desk2929就能正常触发up命令恢复网站。

方案2:修改维护模式中间件,永久放行恢复路由

如果不想每次停机都手动指定白名单,可以修改Laravel的维护模式中间件:

  • Laravel 6及以上版本:找到app/Http/Middleware/PreventRequestsDuringMaintenance.php(若不存在,可从框架核心目录复制一份到该路径),修改handle方法:
public function handle(Request $request, Closure $next)
{
    if ($this->app->isDownForMaintenance() && !$request->is('Turn_Up_Desk2929')) {
        throw new MaintenanceModeException;
    }

    return $next($request);
}
  • Laravel 5.x版本:修改app/Http/Middleware/CheckForMaintenanceMode.php的handle方法,逻辑同上。

临时恢复方法

如果当前网站已处于维护模式且无法访问恢复路由,直接在终端执行以下命令即可恢复:

php artisan up

内容的提问来源于stack exchange,提问作者Jamal Azizbeigi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:20:41