当我的网站被托管时,是否有可能在没有php工匠上下命令的情况下打开和关闭Laravel 5维护?
我做了什么:
Route::get('site/shutdown', function(){
return Artisan::call('down');
});
Route::get('site/live', function(){
return Artisan::call('up');
});
第一条路线工作正常。但是,当我打电话给网站/直播时,该网站仍被拒之门外。什么可能导致这个问题?
答案 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
路线就可以了。