Laravel 5维护模式在没有工匠的情况下开启

时间:2016-01-15 22:40:51

标签: laravel

当我的网站被托管时,是否有可能在没有php工匠上下命令的情况下打开和关闭Laravel 5维护?

我做了什么:

Route::get('site/shutdown', function(){
    return Artisan::call('down');
});

Route::get('site/live', function(){
    return Artisan::call('up');
}); 

第一条路线工作正常。但是,当我打电话给网站/直播时,该网站仍被拒之门外。什么可能导致这个问题?

6 个答案:

答案 0 :(得分:22)

如果您的项目已经关闭,则无法调用其他功能。

运行php artisan down后发生了什么。它在down内创建一个名为storage/framework的文件。运行php artisan up后,它会删除该文件。

您可以在storage/framework内手动创建文件。它会打倒你的项目。如果您想再次使用项目,只需删除该文件即可。

答案 1 :(得分:3)

我认为这里缺少正确的答案。 您可以将路线添加到app / http / middleware / CheckForMaintenanceMode.php

protected $except = [
        //here
];

所以它永远不会关闭。

答案 2 :(得分:2)

为了使用网址重新启动您的网站,您可以创建一个live.php文件,将其放在laravel的公共文件夹中,然后访问http://your.domain/live.php

在live.php文件中你需要这样的东西:(如果你不使用默认的公共文件夹,请检查你的项目目录结构!)

<?php
unlink(dirname(__FILE__) . "/../storage/framework/down");
header("Location: your.domain"); 
die;

答案 3 :(得分:1)

只放

Artisan::call('up');

没有路由功能。

答案 4 :(得分:0)

当您将工匠赶下台时。该站点不可用,因此在尝试调用时,您的IP无法访问该站点。 您必须通过IP例外进行呼叫。

php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16

或将:: 1添加到本地。

使它在没有命令的情况下 尝试将该命令保存为特定命令并调用它。

答案 5 :(得分:0)

Laravel 8在维护模式下引入了secret,在这种模式下,您可以通过提供密码来绕过维护模式,然后您的Artisan::call就可以工作。

您可以将路由添加到$except中间件中的CheckForMaintenanceMode var中以绕过检查。这样您的site/live路线就可以了。