Laravel動作環境の構築
概要はこれくらいにして、実際にLaravelを使っていきましょう。そのためには、まずLaravelが動作する環境を作る必要があります。LaravelはPHPフレームワークですので、まずはPHPが動作する環境が必要です。
とはいえ、本連載の読者はすでになんらかのPHP開発を経験している人が多いと思いますので、その環境を利用してもかまいません。ただ、連載としてはXAMPPの利用を前提で解説していきます。まだ、PHPの動作環境がない人は、連載に合わせてXAMPPを用意してください。XAMPPとは何か、XAMPPのインストールの方法については、こちらの解説を参照してください。
PHPの動作環境(XAMPP)が用意できたら、次に必要なのはComposerです。LaravelはComposerの利用を前提としています。Composerが何か、そのインストールの方法に関しても、こちらの解説を参照してください。
初めてのLaravelアプリ
いよいよ、初めてのLaravelアプリを作成します。
アプリのひな型作成
LaravelはComposerのコマンドを利用してアプリのひな型(プロジェクト)を作成することから始めます。ここでは、XAMPPのドキュメントルート直下に「firstlaravel」というアプリを作成しましょう。コマンドを利用するので、Windowsならばコマンドプロンプト、macOSならばターミナルを起動し、XAMPPのドキュメントルートまで移動してください。その上で、以下のコマンドを実行してください。
composer create-project --prefer-dist laravel/laravel firstlaravel
すると、さまざまなライブラリをダウンロードし始めます。途中経過は随時コマンドプロンプト、あるいは、ターミナル上に表示されます。最終的にエラー表示などもなく、以下のメッセージが表示されればプロジェクト作成が成功しています。
Application key set successfully.
ここで、少しコマンドの意味を解説しておきましょう。まず、以下がcomposerを使ってプロジェクトを作成するコマンドです。
composer create-project ベンダー/パッケージ 対象ディレクトリ
ここでは、laravelベンダーのlaravelパッケージでfirstlaravelディレクトリにプロジェクトを作成するので、
composer create-project laravel/laravel firstlaravel
となります。この間に挿入されている
--prefer-dist
は、常にdistでパッケージをダウンロードするオプションです。対象のパッケージがGitHubなどで管理されている場合、gitのclone方式でソースコードをダウンロードするか、zip方式でダウンロードするかの2種の方法があります。このうち、zip方式でダウンロードすることをdistと言います。もし、clone方式でソースコードをダウンロードする場合は
--prefer-source
オプションを指定します。この場合、ダウンロードしたパッケージはgitで管理できるようになります。
動作確認
プロジェクトの作成が成功していれば、Apacheを起動し、以下のURLにアクセスしてください。
このURLの意味は後ほど解説します。図3の画面が表示されれば成功です。
macOSでのアクセス権限の変更
Windowsの場合は特に問題なく図3の画面が表示されます。ただ、Macの場合は図4のようなエラー画面が表示されます。
これは、作成されたLaravelプロジェクト内の以下のディレクトリへのアクセス権限が不足しているために起こります(Windowsの場合はディレクトリ権限がそこまで厳しくないために表示されています)。
- storage
- bootstrap/cache
これらのディレクトリのアクセス権限を変更しましょう。firstlaravelディレクトリ内に移動し、まずstorageから権限を変更します。storageは配下のフォルダも含めてアクセス権限を変更します。以下のコマンドを実行してください。
chmod -R 777 storage/
次に、bootstrap/cacheです。これは、このcacheディレクトリのみを変更しますので、以下のコマンドを実行してください。
chmod 777 bootstrap/cache/
これで、再度上記URLにアクセスしてください。Macでも無事図3の画面が表示されます。
[Note]Laravelのエラー表示
図4を見てもわかるように、LaravelではPHPのエラー自体も非常にカラフルでわかりやすい形式で表示されてくれます。これを頼りにデバッグしていけるようになっています。まさに、コードが書きやすいフレームワークです。
