Laravel開発環境構築

はじめに

Dockerを使ってPHPのフレームワークLaravelの環境構築の方法についてまとめました。
プログラミング初学者の方にもできるだけ理解できるように書きましたので参考にしてください。
gitがインストールされているmac環境での説明になります。

環境

  • Mac OS X Mojave 10.14
  • Docker for Mac

Dockerのインストール(Docker for Mac)

すでに「Docker for Mac」をインストールされている方はこのセッションはスキップしてください。

公式サイトから「Docker for Mac」をインストールします。

Docker for Mac 公式サイト

画面の該当の箇所を押下して「Docker for Mac」をダウンロードしてご自身のマシーンにインストールしてください。

終わったらインストールされているか以下のコマンドで確認します。バージョンが表示されれば問題ありません。

$ docker version

以下のような表示なっていれば成功です。

Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:21:31 2018
 OS/Arch:           darwin/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:29:02 2018
  OS/Arch:          linux/amd64
  Experimental:     true

Laradockとは

LaradockとはDocker環境でLaravel環境を簡単に構築できるDockerイメージです。Laradockのプロジェクトは大きくなりSymfonyやWordpress環境までも構築出来るようになりました。

Laradock 公式サイト

機能としては、NginxやApacheなどのwebサーバー、PHPの各バージョン、MysqlやPostgreSQL等の各データベースを自由に選択できます。今回はNginx、PHP-FPMが動く環境を作り、Laravelを立ち上げるまでを記載します。

PHP-FPMとは、FPM ( FastCGI Process Manager ) は PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。

Laradock用のディレクトリを作成

お好みのディレクトリにLaradock用ディレクトリ作成します。
今回は、 DockerLaravelというディレクトリを作成しました。
また、作成したディレクトリに移動します。

お好みのディレクトリまで移動したら以下の操作を行ってください。

$ mkdir DockerLaravel
$ cd DockerLaravel

Laradockのclone

Laradockをcloneします。
LaradockにはDockerfileやComposeのymlファイルが含まれています。

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

そうすると laradock なるディレクトリが DockerLaravel ディレクトリ内に作成されます。
laradock に移動します。

$ cd laradock

また、この時点でenvファイルもコピーしておきます。

$ cp env-example .env

さらに設定ファイルにアプリケーションのディレクトリのパスを指定します。
具体的には定数 APP_CODE_PATH_HOST にアプリケーションのディレクトリのパスを指定します。
DockerLaravel の中に laradock と並列に myapp というアプリケーションがあるとすると .env ファイルは以下のようになります。

APP_CODE_PATH_HOST=../myapp/

laradockを立ち上げる

docker-composeコマンドを実行して、laradockを立ち上げます。
一番最初だけ --build というオプションをつけてdockerイメージのビルドを行います。

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

2回目からはイメージは作成されているので立ち上げるだけで大丈夫です。

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

Dockerの基本的なコマンド

Dockerの状態を確認するためのコマンドです。

$ docker ps

bashでログインする

立ち上げたイメージにbashでログインします。
--user= のあとにはユーザー名を指定します。
そのあとにbashでログインするイメージを指定します。

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

また、以下のコマンドでdockerの環境から抜けられます。

$ exit

dockerの停止

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

$ docker-compose stop

laravelのインストールを行う

ログインした直後に /var/www に移動してください。

docker内の /var/wwwが先述の DockerLaravel ディレクトリと紐づけされています。
docker内の /var/www で作成したディレクトリやファイルがMac上の DockerLaravel ディレクトリに作成されます。
その逆もそうです。

その後、以下のコマンドでlaravelインストール

$ composer create-project laravel/laravel ProjectName "5.3.*"

バージョンを”5.3.*”を指定していますが、削れば最新バージョンになります。

ProjectName 部分はお好きなプロジェクト名に変更してください。

再起動

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

http://localhost:8080/

laravelのトップページが表示されていれば成功です。

まとめ

Laradockを使うと1つずつインストールよりも圧倒的に早くインストールできるので開発に集中することができます。