【Laravel】メンテナンスモードの切替, IP制限の設定
Maintenance Mode
メンテナンスモードの切替が標準搭載されている
メンテナンスモード有効
$ php artisan down Application is now in maintenance mode.
メンテナンスモード無効
$ php artisan up Application is now live.
この時のメンテナンス画面は resources/views/errors/503.blade.php
が使われる
上記ファイルがない場合の画面はこれ
IP制限をかけることもできる
指定したIPからのアクセスの場合は正常に画面を表示する
設定は.env
からカンマ区切りで指定できる
#メンテナンス時のアクセス許可IP MAINTENANCE_IP=IPaddress1,IPaddress2,IPaddress3
env("PARAMETER") といった形の .env で定義した値が読み込めなく(Nullに)なる
2018/07/02
ローカルログイン画面からログインできない件
起こったこと: env("PARAMETER")
といった形の .env
で定義した値が読み込めなく(Nullに)なる事象が発生していた。
原因1:configキャッシュの作り直しをするため php artisan config:cache
コマンドを実行し、キャッシュが固定されたため。
原因2:5.2以降の仕様で、キャッシュがある時は、 config/*.php
以外の場所で使われる env()
は無効化される。(NULLになる)
解決方法:以下のコマンドを実行
# キャッシュファイルの場所まで移動 $ pwd ~projectdir/bootstrap/cache # configのキャッシュファイルを削除 $ ls -l -rw-r--r-- 1 user_name 46682944 16560 6 28 16:43 config.php $ rm -f config.php
Upgrading To 5.2.0 From 5.1 > Configuration
Caching And Env
If you are using the config:cache command during deployment, you must make sure that you are only calling the env function from within your configuration files, and not from anywhere else in your application.If you are calling env from within your application, it is strongly recommended you add proper configuration values to your configuration files and call env from that location instead, allowing you to convert your env calls to config calls.
正規表現考える
<?php $str = "/content/hoge/fuga/piyo/ドメイン/hoge.html"; $regular1 = "/\/content\/(.*?)\/(.*?)\/(.*?)\//"; //[/content/hoge/fuga/piyo/] $regular2 = "/^\/([^\/]*\/){4}/"; //[/content/hoge/fuga/piyo/] $regular3 = "/^\/((.*?)\/){4}/"; //[/content/hoge/fuga/piyo/] preg_match($regular1, $str, $matches1); preg_match($regular2, $str, $matches2); preg_match($regular3, $str, $matches3); echo "元: ".$str.PHP_EOL; echo PHP_EOL; echo "正規表現: ".$regular1.PHP_EOL; echo "パターン全体にマッチしたテキスト: ".$matches1[0]; echo PHP_EOL; echo PHP_EOL; echo PHP_EOL; echo "正規表現: ".$regular2.PHP_EOL; echo "パターン全体にマッチしたテキスト: ".$matches2[0]; echo PHP_EOL; echo PHP_EOL; echo PHP_EOL; echo "正規表現: ".$regular3.PHP_EOL; echo "パターン全体にマッチしたテキスト: ".$matches3[0]; echo PHP_EOL; echo PHP_EOL;
パターンマッチを確認
matches
matches を指定した場合、検索結果が代入されます。 $matches[0] にはパターン全体にマッチしたテキストが代入され、 $matches[1] には 1 番目のキャプチャ用サブパターンにマッチした 文字列が代入され、といったようになります。
1. 正規表現: /\/content\/(.?)\/(.?)\/(.*?)\//
Array ( [0] => /content/hoge/fuga/piyo/ [1] => hoge [2] => fuga [3] => piyo )
2. 正規表現: /^\/([^\/]*\/){4}/
Array ( [0] => /content/hoge/fuga/piyo/ [1] => piyo/ )
3. 正規表現: /^\/((.*?)\/){4}/
Array ( [0] => /content/hoge/fuga/piyo/ [1] => piyo/ [2] => piyo )