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();
});
No Comment
Post your comment