by Devin Yang

建立于: 2年前 ( 更新: 2年前 )

Laravel的调试模式相当丰富,Laravel官网有提醒,在本地端开发可设置APP_DEBUG为true,
但是在产品环境,这个值必需永远都是False。

虽然可以用php artisan down的方式进入维护模式,加上secret就能访问。

artisan down --secret=NWQwODZhNTM0ODY5Zjc1MDdkMWI4NzIy

再用网址网启后补上设置的secret
https://yourserver.example/NWQwODZhNTM0ODY5Zjc1MDdkMWI4NzIy

但如果在开发的东西,就是需要有外网的环境时,例如BOT的webhook,怎么辨呢🥺,至少要能锁个外网IP吧。
我目前做法,调整config/app.php,这样就能透过外网的方式决定是否启动DEBUG模式了。

/*
    |--------------------------------------------------------------------------
    | Application Debug Mode
    |--------------------------------------------------------------------------
    |
    | When your application is in debug mode, detailed error messages with
    | stack traces will be shown on every error that occurs within your
    | application. If disabled, a simple generic error page is shown.
    |
    */

    //'debug' => (bool) env('APP_DEBUG', false),
   'debug' => env('APP_DEBUG', ($_SERVER[env("PROXY_REAL_IP","REMOTE_ADDR")]??"null") == env('APP_CAN_DEBUG','') ? true : false),

在上方设置中,我们可以把.env的APP_DEBUG变更成APP_CAN_DEBUG=我的外网IP。
需要的话,再补上PROXY_REAL_IP,用来定义主机或容器能取得的真实IP。

这样一来只有要在.env中进行相关设置,就可以安心的进入Debug mode罗,
不用时调.env中的APP_CAN_DEBUG等於false就可锁起来。

#APP_CAN_DEBUG=false
PROXY_REAL_IP=HTTP_X_REAL_IP
APP_CAN_DEBUG=111.248.117.140

PROXY_REAL_IP用来设置了Proxy在header中带的真实IP,可依自己的环境进行设置。
像是HTTP_X_FORWARDED_FOR或是HTTP_X_REAL_IP等。
 

我们可写个简单的Route用phpinfo查自己的外网IP及$_SERVER的header名称为何,确认有没有设置错误。

Route::get('/myphpinfo', function(){
    phpinfo();
});

Tags: laravel Laravel security

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


laravel,dotenv,seo

我如何依子域名动态加载Laravel不同的dotenv档

开始前先来抱怨一下,本来我的网站可以依使用者的浏览器自动显示不同的语系的。这有何不可,但Google的SEO似乎不喜欢这么搞,他建议每种语言使用不同的网址,不要用cookie或浏览器设置来调整网页内容,好吧那我只能乖乖就范了。他的建议作法,第一种方案:依国家区分,像是example.tw或example.de这真的天方夜谭怎么可能,要嘛收购被注册的域名,要不然取个全球没人会取的怪域名还比较有机会。第二种方案:用子域名区分,这正式我准备要做的,等等来说明在Laravel中怎么弄。第三种方案:example.com/tw/ 之类的,Apple好像就这么弄的。第四种方案:site.com?loc=tw之类,不建议使用,确实我也觉的这个不是一个好主意。

laravel

在laravel中自定义自己的helper

在Laravel的框架中,包含了相当大量的PHP功能(php functions),称为helper。 https://laravel.com/docs/5.6/helpers 那我们要如何在Laravel中自定义自己的helper呢,其实相当简单呢.. 在composer.json中autoload内的files新建即可。

dlaravel

如何在host直接运行容器内,不同Project的php artisan.

本篇为D-Laravel的运用教程,如何在主机端直接运行container内的php artisan. 自定义别名后,就能直接在host端的project数据夹内,直接运行contianer内的php artisan了。 alias a="../../artisan.sh"