人気のPHPフレームワーク「Laravel」を導入してみた(初期設定編)

投稿者:

2019.7.3 最新バージョン(5.8)に合わせて記事を一部更新しています

かなり長い間、PHPを使ったシステム開発ではオレオレフレームワークを使用していて、負の連鎖を止めれなかったのですが、自社サービスのリプレースを機に人気のフレームワーク「Laravel(ララベル)」を導入して1年以上経過しました。経験的にはまだまだですが、今後はオレオレを使う事もありませんので、導入までの基本を覚書として記したいと思います。




参考サイト・ページ

https://readouble.com/laravel/5.8/ja/installation.html

1.composerのインストール

https://getcomposer.org/download/
composer(コンポーザー)」はPHP関連のパッケージ管理・依存管理をしてくれるツールで、Laravelをインストールするため、またLaravelインストール後の各種パッケージを導入・管理するためにインストールします。Linux系はもちろん、Windows・Macにもそれぞれ対応してますので安心ですね。

# curl -sS https://getcomposer.org/installer | php

2.Laravelのインストール

上でインストールしたcomposerを使ってLaravelをインストールします。指定したプロジェクト名がディレクトリ名となって作成されますので、階層に注意してコマンドを実行してください。

# composer create-project laravel/laravel --prefer-dist プロジェクト名

またLaravelのバージョンを指定したい場合は以下のように設定してください(以下の例ではバージョン5.8系、プロジェクト名はsample_project)。

# composer create-project "laravel/laravel=5.8.*" sampleproject

3.環境構築

Laravelのインストールが完了したので後は環境構築です。環境構築はバージョンによって異なる可能性があるため、公式ドキュメントをしっかり確認しましょう。今回は「5.8」をベースに進めます。
https://readouble.com/laravel/5.8/ja/installation.html

●Publicディレクトリ

Webサーバのドキュメント/Webルートがpublicディレクトリになるように設定してください。

こちらはApacheやnginx等のWebサーバの設定ですので、分からなければ「ドキュメントルート」辺りのキーワードで調べてみて設定してください。

●パーミッション変更

Laravelがログやキャッシュ等を生成するため、2つのディレクトリに対してパーミッションの変更が必要です。

# chmod -R a+w storage
# chmod -R a+w bootstrap/cache

●composerの更新

Laravel自体もcomposerでインストールしましたが、Laravelプロジェクトで利用している各種パッケージも、composer.jsonに従ってcomposerでインストールします。プロジェクト内に「vendor」ディレクトリが作成されますので、存在しない場合はまずこちらのコマンドを実行してください。

# composer update

ちなみにプロジェクトのルートにある「.gitignore」ファイルを見てもらえば分かりますが、vendor等の一部ファイル・フォルダはgitの管理から無視・除外されます。「gitで管理しているソースからデプロイする」といった運用をしている場合はデプロイ時にvendorフォルダがありませんので別途「composer update」するのを忘れないよう注意してください。

●APP_KEYの設定(APP_KEYがない場合)

Laravelをcomposerでインストールすると自動的に実行されるはずですが、もしプロジェクト内の環境設定ファイル「.env」に「APP_KEY」が設定されていない場合は以下コマンドでキーが設定されます。

# php artisan key:generate

●.env(環境設定ファイル)の設定

Laravel以外でも利用される一般的な手法ですが、本番環境・開発環境と設定を切り替えるため、環境変数を.envファイルに記述します。設定は幾つかのブロックに分かれていますが、例えばDBと連携するシステムを構築する場合はDBのブロックに対して以下のように設定します。

DB_HOST=DBのホスト名
DB_DATABASE=DB名
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード

それ以外にもメールの設定や外部サービスとの連携用のAPIキーやURLなどもここに記載して切り替える運用が良いと思います。

●言語と時刻設定

日本語環境向けに以下設定を変更します。

'timezone' => 'Asia/Tokyo',
'locale' => 'ja',

これで大まかな初期設定は完了しました。次回気が向いたらLaravelのフレームワークとしての基本機能である「マイグレーション」「Eloquentモデル」「シーディング」辺りについて解説したいと思います。