PHPフレームワーク Laravelを使ってみたのでそのメモ。 パート1。

最近人気らしい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のビルトインサーバー使うという選択肢もあるのだろうけれど。)

環境設定

やりたい事

  • 開発環境では、デバッグモードを有効・公開環境では無効にしたい
  • 開発環境では、http 公開環境ではhttpsにしたい。
  • ルートディレクトリにある.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

    Leave a Reply

    Your email address will not be published.