ファイルの配置
https://example.com/second に2つ目のLaravelを新たに設置するとき、一番初めに思いつくのは、/public/second にLaravel構成ファイルを設置し、このような方法でアクセスを制御することだが、そうすると非公開情報である/second/.envがブラウザからアクセスされてしまう。
https://example.com/second/.env
※このようにアクセスされると、データベースやSMTPなどの機密情報がテキストで表示される。
個別に.env
そのため、実際には1つ目のLaravel構成ファイルと、2つ目のLaravel構成ファイルを同じ階層に設置する。
/path/to/first
/path/to/second
※公開領域外であればOK
さらにシンボリックリンクで、/path/to/first/secondにアクセスされたときに、/path/to/second/publicの内容が表示されるように設定する
ln -s /path/to/second/public /path/to/first/public/second
※https://example.com/second にアクセスされた時に、/path/to/second/public が参照されるようになる。
こうすることで、.envへ到達する経路がなくなる。
※.envへのアクセスをdenyする形も採れるが、上記のようにそもそも公開領域外に設置することで
セッションクッキー
LaravelのCookieはドメイン直下で共有されるため、firstで認証(ユーザーログイン等)した後、別のタブでsecondで認証すると、セッションクッキーが上書きされfirstで一部の操作が行えなくなる。
そのため、second側(またはfirst側で)セッションクッキー名を変更する
.envへ次を追加する
SESSION_COOKIE=mysecondcookie