Laravel PR

Laradockを使ってLaravel6の環境を構築する手順をコマンド付きで解説!データベースの設定もあり!

記事内に商品プロモーションを含む場合があります

  • Laravelの環境構築をしたい!
  • Laradockの使い方がわからない!
  • Lardockのデータベースがつながらない!

今回の記事ではこんな悩みを解決していきます。

LaradockはDocker+Laravelの環境を簡単に構築出来るようにしてくれたパッケージです。

本来なら自分でPHP、MySQL、nginxなどをインストールする必要があるのに対し、Lardockを使えばインストールしたいライブラリを指定するだけでインストールをすることが可能です。

しかし簡単と言えど、Dockerと言うなれないプラットフォーム上に構築されるので、どんなコマンドを入力すればよいか分からず挫折する方も多いと思います。

そこで今回の記事ではLaradockを使ってウェルカムページを表示してデータベースを使える様にするまでを徹底的に解説していきます。

環境

今回の内容は利用している環境に左右されない想定ですが、一応動作確認した際の環境を記載します。

動作確認の環境

  • macOS Catalina 10.15.2

事前準備

Laradockを利用するために2つの準備が必要です。

事前準備

  • Gitのインストール
  • Dockerのインストール

Gitのインストール

Laradockは git clone コマンドを使ってダウンロードをするため、Gitコマンドが必要になります。

MacであればデフォルトでGitがインストールされていますが、Windowsをお使いの場合は下記のサイトからインストーラーをダウンロードして実行しておきましょう。

git for windows

Dockerのインストール

Laradockは名前の通りDockerを利用して動かしていきます。

そのため環境を構築するパソコンにDockerをインストールしている必要があります。

MacにDockerをインストール

Macであれば下記のサイトから「Get Docker」を選択してインストールを行う事が出来ます。

※インストールをする際には無料のアカウントが必要

Docker Desktop for Mac

WindowsにDockerをインストール

WindowsにDockerをインストールする方法は、Macより少し手順が多いですが下記の記事などを参考にインストールを行いましょう。

Windows 10 Pro 64bit に Docker と Docker Compose をインストールする

Laradockを使ってLaravelの環境を構築する流れ

Laradock環境の構築手順

  1. Laravelプロジェクトを入れるディレクトリを作成
  2. Laradockをgit cloneでダウンロード
  3. Laradockの.envファイルを作成
  4. Laradockを起動
  5. Laravelプロジェクトの作成
  6. yarn installの実行
  7. Laradockの.envファイルを編集
  8. Laravelの.envファイルの編集
  9. 画面の確認
  10. データベースの状態を確認

ディレクトリの作成

まずはLaradockとLaravelのプロジェクトを格納するディレクトリを作成して行きます。

Console

$ mkdir laradock-practice
$ cd laradock-practice

mkdir でディレクトリを作成後は、 cd コマンドで作成したディレクトリの中に移動しておきましょう。

またこの記事では laradock-practice という名称にしていますが、ディレクトリ名は任意のものでOKです。

Laradockをクローンする

続いてLaradockをクローンして行きます。

Console – laradock-practice


$ pwd
/Users/himakuro/Documents/project/laradock-practice

$ git clone https://github.com/LaraDock/laradock.git
Cloning into 'laradock'...
remote: Enumerating objects: 10339, done.
remote: Total 10339 (delta 0), reused 0 (delta 0), pack-reused 10339
Receiving objects: 100% (10339/10339), 9.27 MiB | 3.13 MiB/s, done.
Resolving deltas: 100% (5599/5599), done.

クローンコマンドを入力する際には必ず pwd コマンドで laradock-practice の中に移動が出来ているかを確認してから行うようにしましょう。

Laradockの.envファイルを作成

Laradockのクローンが完了すると、新たに laradock ディレクトリが作成され、その中には env-example と言う環境変数が大量に書かれたファイルが存在します。

しかしLaradockでは .env というファイルを環境変数のファイルとして読み込む設定になっているので、このままでは環境変数が読み込まれることはありません。

そこで下記のコマンドを入力して env-example を元に、.env を作成しましょう。

Console – laradock-practice


$ cp laradock/env-example laradock/.env

上記のcpコマンドはlaradock-practice のディレクトリでの実行を想定していて、実行が完了すると laradock のディレクトリ内に .env ファイルが作成されます。

ファイルを作成後は cat コマンドなどを使い、.env ファイルが作られていて中身も入っている事を確認しておきましょう。

Console – laradock-practice


$ cat laradock/.env
cat laradock/.env
###########################################################
###################### General Setup ######################
###########################################################

### Paths #################################################

# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../
.
.
.

(※大量のログが流れます)

Laradockの起動

.envファイルの準備が出来たらいよいよLaradockを起動していきます。

Laradockを起動するためにcdコマンドでlaradockのディレクトリに移動し、docker-composeコマンドで起動を行います。

Console


$ cd laradock
$ docker-compose up -d workspace
Creating network "laradock_frontend" with driver "bridge"
Creating network "laradock_backend" with driver "bridge"
Creating network "laradock_default" with the default driver
Creating laradock_docker-in-docker_1 ... done
Creating laradock_workspace_1        ... done

起動後は下記のコマンドで、2つのイメージが起動しているかを確認しましょう。

Console


$ docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                                                  NAMES
55f586c0e403        laradock_workspace   "/sbin/my_init"          5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:8001->8000/tcp   laradock_workspace_1
76edba727589        docker:19.03-dind    "dockerd-entrypoint.…"   5 minutes ago       Up 5 minutes        2375-2376/tcp                                                          laradock_docker-in-docker_1

Laravelプロジェクトの作成

続いてLaravelのプロジェクトを作成していきます。

プロジェクトを作成するために、まずbashコマンドでLaradockのコンテナの中に入ります。

Console – Local


$ docker-compose exec --user=laradock workspace bash

# workspaceコンテナの中に入った後はpwdでディレクトリを確認
$ pwd
/var/www

pwdコマンドで居場所を確認したら、次はLaravelのファイル群を下記のコマンドで作成していきます。

workspaceのコンテナ内


$ composer create-project laravel/laravel --prefer-dist
Installing laravel/laravel (v7.3.0)
  - Installing laravel/laravel (v7.3.0): Downloading (100%)
Created project in /var/www/laravel
.
省略
.
Application key set successfully.

(※大量のログが流れます)

このコマンド実行が終わると新たにlaravelというディレクトリが作成され、中には大量のファイルが作成されます。

composer installの実行

続いて作成されたlaravelのディレクトリの中に入りcomposer installのコマンドを実行していきます。

このコマンドを実行することで、Laravelに必要なライブラリのインストールが行われます。

workspaceのコンテナ内


$ pwd
/var/www

$ cd laravel
$ composer install

yarn installの実行

次はyarn installのコマンドを実行していきます。

先程のcomposer installはサーバー側の実装に必要なライブラリをインストールしましたが、このyarn installでは主にフロント側、画面を作成していくのに必要なライブラリ群がインストールされます。

workspaceのコンテナ内


$ pwd
/var/www/laravel

$ yarn install
yarn install v1.22.4
info No lockfile found.
.
省略
.
success Saved lockfile.
Done in 57.40s.

yarn install完了したらexitコマンドでworkspaceのコンテナから出ましょう。

workspaceのコンテナ内


$ exit

Laradockの.envファイルを編集

続いてlaradockの.envファイルを開き、APP_CODE_PATH_HOSTNGINX_HOST_HTTP_PORTを下記のように変更して保存しましょう

laradock/.env


APP_CODE_PATH_HOST=../laravel/
NGINX_HOST_HTTP_PORT=3000

これを行うことにより、laravelディレクトリの内容が3000番ポートで起動が出来るようになります。

もしnginxのコンテナが上手く起動出来ない場合は、3000番ポートが別のコンテナなどにより使用されている可能性があります。その場合はNGINX_HOST_HTTP_PORTの設定を3001や3002など、別のポートに変更して起動してみましょう。

Laravelの.envファイルの編集

続いてLaravel側の.envファイルを編集していきます。

デフォルトの値だとデータベースに接続する事が出来ないので、下記の様に3つの値を変更しましょう。

laravel/.env


DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

データベース名をdefault以外の名前にしたい場合はDB_DATABASEを変更する他に、mysqlのコンテナの中に入り、mysqlコマンドを使い自分でデータベースを作成するコマンドを実行する必要があるので注意しましょう。

画面の確認

ここまでの作業が終わるとLaravelのWelcomeページが開けるようになるはずなので、起動中のコンテナを一度落として起動し直して確認してみましょう。

Console


$ pwd
xxxx/laradock-practice/laradock
$ docker-compose down
$ docker-compose up -d nginx mysql

「http://localhost:3000/」にアクセスをしてみて下記のページが表示されればOKです。 

マイグレーションの実行

続いてLaravelから正常にデータベースのテーブルを作成出来るかを試していきます。

Console


# コンテナに入る
$ docker exec -it laradock_workspace_1 bash

# コンテナ内で実行
$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (2,435.18ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (617.20ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (824.36ms)

上記のマイグレーションの結果はあくまで一例なので、利用しているLaradockのバージョンが異なる場合は、生成されるテーブルや日付けの部分が異なる場合があります。

マイグレーションの状態を確認

Console


$ docker exec -it laradock_workspace_1 bash

$ php artisan migrate:status
root@6872a26d8c89:/var/www# php artisan migrate:status
+------+------------------------------------------------+-------+
| Ran? | Migration                                      | Batch |
+------+------------------------------------------------+-------+
| Yes  | 2014_10_12_000000_create_users_table           | 1     |
| Yes  | 2014_10_12_100000_create_password_resets_table | 1     |
| Yes  | 2019_08_19_000000_create_failed_jobs_table     | 1     |
+------+------------------------------------------------+-------+

php artisan migrate:statusというのは現在のマイグレーションの状態を確認出来るコマンドで、Ranの項目がYesになっていればテーブルが正常に作成出来ているという事になります。

もしNoになっていた場合は、テーブルが作成出来ていない事になるのでphp artisan migrateを実行してテーブル作成を完了させましょう。

テーブルの作成が上手くいかない場合にチェックすべき項目

  • 1. laravel/.envの設定
  • 2. default以外のデータベース名を指定している場合は、自分でデータベースを作成したか

Laradockを使うのは決して難しくはない

今回の記事ではLaradockを使ってLaravelの環境構築を行いました。

全てを理解して使いこなすのは大変ですが、コマンドを入力してLaravelの環境を構築するだけであれば決して難しくはありません。

LaravelはPHPのフレームワークでも圧倒的ポジションを確立しつつあるので、是非これを機会にあなたのパソコンにもLaravelの環境を構築してみてはいかがでしょうか。

ABOUT ME
himakuro
新卒で入社したブラック企業から脱出して超ホワイトな会社に転職。エンジニア歴は7年で普段はウェブサービス作ったりブログを書いたり、MENTAで未経験者の方にプログラミングを指導しています。
PR
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール