Laravel 维护模式 --allow ip 不工作

标签 laravel laravel-artisan laravel-5.7 maintenance-mode

我试图在 vps 上的 laravel 中通过维护模式允许我的公共(public)互联网 ip。

--allow 命令是在互联网上工作还是只在本地主机上工作? 因为我无法使用以下命令通过维护模式页面:

$ php artisan down --allow=xx.xx.xx.xx (my public internet ip)
Application is now in maintenance mode.
$ php artisan up
Application is now live.

最佳答案

您可以验证您的应用程序看到的 IP 地址并允许它:

Route::get('/what-is-my-ip', function(){ 
    return request()->ip();
});

但请注意,如果您使用的是内容分发网络服务(如 cloudflare),您将看到该服务的 IP 而不是用户。这意味着,每个人都将拥有相同的 IP。

例如Cloudflare,您可以通过在 public/index.php

中重新设置正确的用户 IP 使其正常工作
<?php

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}

更多解释来源:https://laracasts.com/discuss/channels/laravel/cloudflare-and-user-ip

关于Laravel 维护模式 --allow ip 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54763553/

相关文章:

php - SQL 命令在 Laravel 5.7 中未给出预期结果。我需要修改我的表或查询吗?

php - Laravel MustVerifyEmail 不发送电子邮件

laravel - 从数据透视表 laravel 中删除一个条目

php - 照亮\数据库\QueryException SQLSTATE HY000 : General error: 1215

php - 如何从 php artisan migrate 获取结果 mysql 指令

php - 未列出 laravel 自定义命令

laravel - 在 Laravel 5.7 中更改验证电子邮件的默认 “Subject” 字段

php - Laravel 验证器响应嵌套数组

mysql - 具有多态连接的 Laravel 查询生成器不适用于 SQLite

laravel-4 - 数据库连接上的 Laravel Artisan 命令