以前の記事で、「Homesteadを使ってLaravel開発環境を作る」方法を紹介しました。
ただ、このブログもDockerを使って構築した経緯もあり、「Laravel開発環境もDockerで作れるのでは?」と思ってふと調べたら、ありました!!
laradockというLaravel用のDockerイメージがまとまっているプロジェクトがありましたので、今回はlaradockを使用して、改めて開発環境を構築したいと思います。
作業環境は以下の通り。
作業環境:
・OSはWindows10 Professional
・PHP + Composerインストール済み
・Dockerインストール済み
・Gitインストール済み
・コマンドラインインターフェースとしてGitBashを使用
※注意:DockerとVirtualBoxは共存できません!!
DockerとVirtualBoxは共存できません。Homestead環境は使用できなくなります。(VirtualBoxが起動しなくなるため)
今回は「すでに複数のLaravelプロジェクトが存在する」方法の手順を行います。
0.環境
自分の環境では、以下のディレクトリに複数のLaravelプロジェクトが配備されています。
C:\Projects\PHP\Lalavel\
1.準備
Laravelプロジェクトが存在するディレクトリに移動し、Gitコマンドでリポジトリをクローンします。
cd \C\Projects\PHP\Lalavel\ git submodule add https://github.com/Laradock/laradock.git
2.envファイルカスタマイズ
LaradockはLaravelで必要になるであろう、多くのアプリケーション(nginx, mysql, radiusなど)で構成されています。
この中から、必要となるアプリケーションを選定し、dockerで起動するようにします。
git cloneしたディレクトリの中に「env-example」というファイルがあるので、「.env」へ変更します。
Windowsの場合、先頭に「.」が付くファイル名に変更できないため、GItBashからmvコマンドで変更するのが良いかと思います。
mv env-example .env
.envの中身を編集します。自分が変更したのは以下の2点。
DATA_PATH_HOSTとCOMPOSE_PATH_SEPARATORを変更しています。
# Choose storage path on your machine. For all storage systems
# DATA_PATH_HOST=~/.laradock/data
DATA_PATH_HOST=./data
# Change the separator from : to ; on Windows
# COMPOSE_PATH_SEPARATOR=:
COMPOSE_PATH_SEPARATOR=;
3.nginxカスタマイズ
nginxの設定を変更し、複数のサイトが動作するよう変更します。
nginxの設定ファイルは以下の場所にまとめられています。
自分のディレクトリには、現在勉強中のプロジェクトが複数あるので、以下の2つのプロジェクトを起動できるように設定します。
・5-1_database
・6-1_eloquent
「app.conf.example」をコピーし、「5-1_database.conf」「6-1_eloquent.conf」の2つのファイルを作成します。
※laradockのnginxの設定ファイルは、ファイル拡張子が.confのものをすべて読み込むように設定されているため、ファイル名は何でもよく、拡張子にだけ注意します
作成したconfファイルをそれぞれ編集します。
編集する必要があるのは、「ServerName」「root」の二つの項目となります
・5-1_database.conf
server_name 5-1_database.test;
root /var/www/5-1_database/public;
・6-1_eloquent.conf
server_name 6-1_eloquent.test;
root /var/www/6-1_eloquent/public;
4.hostsファイルカスタマイズ
nginxのコンフィグファイルで設定したServerNameとホスト名の対応付けを行うため、hostsファイルを編集します。
hostsファイルは「C:\Windows\System32\drivers\etc」にあります
以下の2行をhostsファイルに追加しました
# Laravel Docker
127.0.0.1 5-1_database.test
127.0.0.1 6-1_eloquent.test
5.Dockerk起動と確認
いよいよDockerを起動します
GitBashで「C:/Projects/PHP/Lalavel/laradock」へ移動し、docker-composeで起動するコンテナを指定します。
今回はnginxとmysqlを起動させました。
cd \C\Projects\PHP\Lalavel\ docker-compose up -d mysql nginx
6.アクセスしてみる
それではLaravelのサイトへアクセスしてみましょう。
それぞれのサイトが分かりやすいように、「welcome.blade.php」を編集しています。
終わりに
Laradockを使用して、複数のLaravel環境を動かす手順を紹介しました。
Homestead、Laradockともに、手軽に開発環境を作成できて素晴らしいですね
残念ながら、Homestead、Laradockは共存できないので、自分に適した環境を構築してください。
自分は今後はLaradockで学習を進めていこうと思います。