最近人気らしいPHPフレームワーク Laravelを使ってみたので、そのメモ。
インストール
composerを使ってインストールする。
バージョン5.5がLTS版でバグ修正 2019年8月まで。セキュリティ修正2020年8月まで。)なので無難に5.5を使う事にする。
バージョン5.5を指定してインストール。
composer create-project "laravel/laravel=5.5.*" プロジェクト名
Package manifest generated successfully.
と表示されたら、storageとbootstrap/cache を書き込み可にする。
インストールが完了し、Webサーバの設定等が完了すると上記のようなページが開けるようになる。(開発時はPHPのビルトインサーバー使うという選択肢もあるのだろうけれど。)
環境設定
やりたい事
ルートディレクトリにある.envファイルを開く。
(存在しない場合は.env.sampleをコピーして使う。)
プロジェクト中で利用するenvはシステムの環境変数>.env>config(システムの環境変数・.envに設定が無い場合のデフォルト値の設定が標準のconfigに存在する場合がある)の順番に優先されるので…。
開発環境上ではサーバの環境変数を利用し、.envファイルでは公開環境用の値を指定する事にする。(デプロイ時にあれこれ考えなくて良いように)
(今回、開発用のWebサーバはApacheなのでhttpd.conf等にSetEnvで指定する。)
.envファイルの編集
APP_ENVの確認
自動生成される.envでは
APP_ENV=local
になっていると思うので、
APP_ENV=production。
に変更する。
開発環境のApacheでは
SetEnv APP_ENV “local”
って感じに環境変数を設定する。
APP_DEBUGの確認
デフォルトでtrueになってると思うのでfalse変更。うっかりそのままデプロイ→公開しちゃったら大惨事。
自動生成される.envでは
APP_DEBUG=false
となっていると思うので、
APP_DEBUG=true
に変更する。
開発環境側のApacheでは
SetEnv APP_DEBUG false
って感じに環境変数を設定する。
SESSION_SECURE_COOKIEの確認
公開環境はSSL環境で有効にするので…。
.envに
SESSION_SECURE_COOKIE = true
を追加する。
開発環境は非SSLなので開発環境のApacheでは
SetEnv SESSION_SECURE_COOKIE false
って感じに環境変数を設定する。
その他、必要な設定値は…。
.envファイルでは公開環境用の設定を行い、開発環境で別途指定する必要がある場合はSetEnvする。
routes/web.phpの編集
url関連のヘルパ等でhttp/httpsそれぞれのプロトコル毎のメソッドが用意されているけれど、開発環境はhttp 公開環境はhttpsとしたいので環境毎に使い分けるのは難しい。
なので…
if (app()->environment('production')) { URL::forceScheme('https'); }
これでヘルパがhttp用なのかhttps用なのか気にする必要がなくなる。
というわけで…。
試行錯誤しながらLaravelのお勉強中。
おかしい所とかあったら指摘してくれると助かります。
試しに
数字選択式宝くじ用の番号組み合わせを生成するだけのツールを公開してみた。(フレームワークを利用する必要無いレベルのアレだけれど、練習用。)
https://tools.otapps.net/takarakuji/numbergenerator
コメント