【最新版】はじめてのLaravel!Laradockを用いたLaravel開発環境構築


  • 最終編集日(2021年2月)

【追記】
Dockerの環境構築方法に関する記事を投稿いたしました!

環境構築だけ読みたい方は、Laravelの環境構築まで読み飛ばしてください。

概要

本記事は、PHPのフレームワークであるLaravelの環境構築を解説した記事です。

構築する Laravel 及び PHP のバージョンは以下になります。

  • Laravel 8.x
  • PHP 7.4

初めてLaravelを使う方、一度環境構築で挫折した方でもつまずかないことを心掛けて執筆しました。

何かわからないことことがありましたら、コメントでお知らせください!

環境

Docker for Desktopのインストールが必要になります

  • Mac
  • Windows
    • Windows 10 homeの方は、Windowsをバージョン2004,ビルド19041以上にアップデートした上でWSL 2のインストールが必要になります
    • Docker Toolboxでも環境構築をすることはできますが、一部コマンドが異なる場合があります
  • 本記事ではMySQLを使います。PostgreSQLでの環境構築も可能ですが、Laradockの起動で一部コマンドが異なります。

Laradock で使用できる PHP バージョン早見表

Laradockで使用できるPHP、Laravelのバージョンは以下の通りです。
※2021年1月現在公式サポートされているPHPのバージョンのみ記載しています。

PHPバージョン Laradock対応
7.3
7.4
8.0 ×

前提条件

  • gitをインストールしていること
  • Docker for Desktopをインストールしていること

Terminalで以下のコマンドを実行して正しく出力されるかを確認してください。

$ git --version
git version 2.9.0
$ docker --version
Docker version 19.03.1, build 74b1e89e8a 
$ docker-compose --version
docker-compose version 1.24.1, build 4667896b

※Dockerのバージョンは17.12以降である必要があります。
(参考) Getting Started

Laravelの環境構築

それでは実際にLaravelの環境構築を行っていきましょう。

プロジェクトディレクトリの作成

mkdirコマンドでLaradockをインストールするディレクトリを作成します。ここでは、laravel-workspaceとしています。

mkdir laravel-workspace

cdコマンドで作成したディレクトリに移動します。

cd laravel-workspace

Laradockのインストール

Laradockをインストールしていきます。

以下のコマンドを実行します。

$ git clone https://github.com/Laradock/laradock.git

インストールが終わると以下のように表示されます。

$ git clone https://github.com/Laradock/laradock.git
Cloning into 'laradock'...
remote: Enumerating objects: 11524, done.
remote: Total 11524 (delta 0), reused 0 (Rdelta 0), pack-reused 11524eceiving objects: 100% (11524/11524), 11.36 MiB | 3Receiving objects: 100% (11524/11524), 11.42 MiB | 346.00
 KiB/s, done.
Resolving deltas: 100% (6203/6203), done.
Checking connectivity... done.

laradockディレクトリが作成されていることがわかります。

$ ls
laradock/

Laradockのインストールは以上です

.env ファイルの編集

.envファイルを編集することで、プロジェクトの環境変数を定義していきます。使用するデータベースやPHPのバージョンなどもここで指定します。

cdコマンドを使って先ほど作成されたlaradockディレクトリに移動しましょう。

$ cd laradock

laradockディレクトリの中には、env-exampleという.envのサンプルがあります。これをコピーして使用します。以下のコマンドでコピーしてください。

cp env-example .env

.envを編集していきます。お好きなエディタで.envファイルを開いてください。

1.プロジェクトの相対パスの指定

プロジェクトを作成するにあたり、パスを指定します。
ここでは、laravel-projectというプロジェクトをlaradock同じ階層に作成します。

laravel-workspace
├── laradock
└── laravel-project

8行目を以下のように編集してください。

.env
- APP_CODE_PATH_HOST=../
+ APP_CODE_PATH_HOST=../laravel-project

2.データベースのディレクトリ変更

デフォルトでは、データベースなどがホームディレクトリに保存されるようになっています。
プロジェクトディレクトリ配下に作成されるように設定を変更しましょう。

17行目を以下のように編集してください。

.env
- DATA_PATH_HOST=~/.laradock/data
+ DATA_PATH_HOST=.laradock/data

3. コンテナ名の変更

ここでは、Dockerを起動するときのコンテナ名を指定していきます。「コンテナ?」という方はコピペしていただいて構いません。
※Dockerに関しては「いまさらだけどDockerに入門したので分かりやすくまとめてみた」の記事が非常にわかりやすいです。

36行目を以下のように編集してください。

.env
- COMPOSE_PROJECT_NAME=laradock_
+ COMPOSE_PROJECT_NAME=laravel-project

4. PHPのバージョン設定

PHPのバージョンを設定します。

42行目を使用したいPHPのバージョンに変更します。
ここでは、PHP 7.4を指定します。

.env
- PHP_VERSION=7.3
+ PHP_VERSION=7.4

2021年1月現在のLaradockがサポートしているPHPのバージョンに関してはこちらをご覧ください。

Laradockの起動

それではLaradockを起動していきます。

laradockディレクトリで以下のコマンドを実行してコンテナを起動します。

postgresを使用している場合は、mysqlの部分をpostgresに置き換えてください。

$ docker-compose up -d php-fpm nginx mysql workspace

以下のように表示されればOKです。

$ docker-compose up -d nginx mysql workspace
.
.
.
Creating laravel-project_docker-in-docker_1 ... done
Creating laravel-project_mysql_1            ... done
Creating laravel-project_workspace_1        ... done
Creating laravel-project_php-fpm_1          ... done
Creating laravel-project_nginx_1            ... done

Laravelアプリケーションの作成

それではLaravelのアプリケーションを作成していきます。以下のコマンドを実行してください。

$ docker-compose exec workspace bash

以下のような表示になれば正常にbashが起動できています。

$ docker-compose exec workspace bash
root@6095e16a845d:/var/www#

コマンドの最後には、Laravelのバージョンを指定しています。2021年現在、最新版はLaravel8.xです。ここでは8.*を指定していますが、コマンドの最後の数字を変えることで、別のバージョンのLaravelでアプリケーションを作成をすることができます。

# composer create-project --prefer-dist laravel/laravel="8.*" .

※アプリケーションの作成には少し時間がかかります。

Application key set successfully.と表示されればアプリケーションの作成は完了です。

以下のようにプロジェクトの相対パスの指定で指定した名前と同じフォルダが作成されています。

laravel-workspace
├── laradock
└── laravel-project

アプリケーションの確認

http://localhost にアクセスしてLaravelプロジェクトが作成されているか確認してみましょう。

上記のように表示されていれば正常にアプリケーションが作成されています。

コンテナの停止

コンテナを停止するときは以下のコマンドで停止することができます。

$ docker-compose stop

参考

※本記事はTechpitの教材を一部修正したものです。

最後まで読んでいただきありがとうございました。今後も、PHP・Laravelに関する記事を投稿していきますので、もしよろしければ、Techpitをフォローしてお待ちください!