最新ニュース、芸能、ネットの話題をまとめ読み

 

PHPフレームワーク「Laradock」で、手軽にLaravel+Dockerな開発環境を構築する

  • このエントリーをはてなブックマークに追加
こんにちは、エリカです。

今回は、PHP フレームワーク「 Laravel 」を利用するための環境を構築したいと思います。Laravelでは PHP の組み込み開発サーバを手軽に使用することもできますし、Vagrant を利用した" Laravel Homestead "、PHP とデータベースサーバを直接ローカルマシンにインストールして利用する" Valet "と、さまざまな選択肢が用意されています。仮想化という観点からですと、Vagrant を普段使いされている方には" Laravel Homestead "を利用するのがもっともカンタンです。

上記の 3 つについては公式のドキュメントにすべて記載されてありますが、" Docker "を利用した方法については まだ記載がありません。

そこで今回は、>Laradock を使って、" Docker + Laravel "な開発環境の構築方法についてご紹介したいと思います。

必要なもの

Git
Docker
Node(フロントエンドのビルドも行う場合)

作業ディレクトリの用意

まず任意のディレクトリを作成し、そこに" Laradock "を配置することにします。 最終的に下記のような構成にしていきます。

/MyProject
├── laradock
└── src ... (ここにLaravelが配置される)

まずはメインのディレクトリを作成します。

$ mkdir MyProject && cd MyProject

Laradock をサブモジュールとして扱うために、git を利用できるようしておきます。

$ git init

次に" Laravel "が配置されるディレクトリを用意しておきます。

$ mkdir src

ここまでできたら" Laradock "を準備します。

Laradockの準備

" Laradock "をサブモジュールとしてクローンします。

$ git submodule add https://github.com/Laradock/laradock.git

これで、先ほどのディレクトリ構成と同じ状態になります。

/MyProject
├── laradock
└── src

Laravelのインストール先の指定

クローンした laradock ディレクトリに入ります。

$ cd laradock

環境設定サンプルファイルから環境設定ファイルを作成します。

$ cp env-sample .env

.env ファイルを編集します。

############################
# General Setup
############################

### Application Path
# Point to your application code, will be available at `/var/www`.

APPLICATION=../src/

APPLICATION に、先ほど作成した src ディレクトリを" Laravel "のインストール先に指定しておきます。

Dockerコンテナの起動

Nginx と MySQL コンテナを起動します。

$ docker-compose up -d nginx mysql

問題なく起動したら http://localhost へアクセスします。

まだ Nginx の 404 ページが表示されていますが、ここに" Laravel "がインストールされることになります。

Workspaceコンテナへの接続

起動しているコンテナを確認します。

$ docker ps

nginxコンテナが依存する形で workspace というコンテナが起動しているはずです。

もし起動していなければ、直接起動します。

$ docker-compose up -d workspace

workspaceコンテナに接続します。

$ docker-compose exec workspace bash

workspace コンテナでは composer をはじめ、開発に必要な多くのコマンドが利用できる状態になっています。

Laravelのインストール

カレントディレクトリが (/var/www) になっているはずなので、そこで composer を使って laravel をインストールします。

$ composer create-project --prefer-dist laravel/laravel ./

再度、http://localhostへアクセスし、Laravelの初期ページが表示されていれば成功です。

この時点で、大元の src ディレクトリ以下に laravel がインストールされているのが確認できるかと思います。 ちなみに、先ほどのページは src/public/index.php が呼び出されたことによって表示されています。これは、nginx のルートディレクトリが /var/www/public にあらかじめ設定されているためです。

MySQLへの接続設定

次に MySQL へ接続できるようにしておきます。

src/.env の接頭辞が DB_ の部分を編集します。これらは、laradock/.env に記述されているそれぞれの値に合わせる形になります。

src/.env (変更前)

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

src/.env (変更後)

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

PhpMyAdminへの接続

お好きなクライアントソフトから接続できますし、PhpMyAdmin の用意もカンタンです。

laradock ディレクトリから phpmyadmin コンテナを起動します。

$ docker-compose up -d phpmyadmin

起動したら、http://localhost:8080 へアクセスします。

この接続情報やポート番号もすべて laradock/.env に記載されています。

artisanコマンドを使う

artisan コマンドを使って、" Laravel "がデータベースへ接続できるか確認してみます。

再び workspaceコンテナに入り、artisan コマンドを叩きます。

$ docker-compose exec workspace bash

Laravel には、認証用にデフォルトでテーブル定義が用意されていますので、それを作成してみます。

$ php artisan migrate

データベースへの接続が問題なければ、マイグレーション情報を格納する migrations テーブルをはじめ、いくつかのテーブルが作成されているのが確認できると思います。

Frontendのビルド環境の準備

これは" Docker "および" Laradock "とは直接関係ありませんが、" Laravel "の開発環境という意味で、フロントエンドのビルドもできるようにしておきます。

まずは、src/ ディレクトリで、必要なパッケージをインストールします。

$ npm install

ビルドに必要な各種パッケージがインストールされたかと思います。

ビルドの実行

$ npm run watch

必要なパッケージのインストールが行われていれば、css および js のビルドが行われます。

初期状態であれば、src/resources/assets の内容がビルドされ、src/public/ 以下に配置されていきます。

以上です。

まとめ

これで、フロントエンドも含めた" Docker + Laravel "な環境が準備できました。

" Laradock "、素晴らしいです。


Yomerumoをフォローする

Yomerumoから人気記事をお知らせします!

Twitter

おもしろ最新記事

記事一覧

注目ニュース

> もっと見る


掲載情報の著作権はニュース提供元企業等またはGMOアドマーケティング株式会社に帰属します。記事の無断転用を禁じます。
すべての人にインターネット
関連サービス