準備

ここでは、筆者が環境を構築した手順を示す。 こちらを参考に、各自同様の環境を構築していただきたい。

もろもろインストール

"導入#開発環境"の基本的なツールのインストール手順を示す。

IDEは、各自使い慣れたものを利用していただきたい。

PHP/Composer

Homebrewでインストールを行なう。

$ brew install php
$ brew install composer

Docker

https://www.docker.com/community-edition

こちらのサイトから、各プラットフォーム向けのバイナリをダウンロードできる。 自分の環境に合わせて、適宜利用してもらいたい。 

実行環境の準備

GitHub: tacck/task-manager-env

こちらにdocker-compose.yml含め必要なファイルがあるので、こちらをクローンして利用していただきたい。

Laravelプロジェクト

下記のようにcomposerを使って、プロジェクトを新規で作成する。

$ cd ~
$ git clone https://github.com/tacck/task-manager-env.git task-manager
$ cd task-manager
$ composer create-project --prefer-dist laravel/laravel task-manager "5.5.*"

タイムゾーン/言語設定

日本国内での扱いを想定しているので、タイムゾーンと言語の設定を下記のようにする。 編集するファイルは~/task-manager/task-manager/config/app.php

    'timezone' => 'Asia/Tokyo',
    'locale' => 'ja',

.env.env.testingの設定

Laravelでは、DBの設定などを環境変数で定義するようになっており、これを.envというファイルで管理している。

ここで、一点注意して欲しいことがある。

これから先の本編で実行するテストコマンドは二種類あり、 一方(PHPUnit)は「開発環境」で動き、もう一方(Laravel Dusk)は「実行環境」で動くようになる。 そのため、環境設定も二種類用意しておく必要があるのだ。

「開発環境」はローカルPCからDockerに接続する形で利用する書き方をし、 「実行環境」はDocker内部で動作する形で利用する書き方をしなければならない。

まず、「実行環境」向けに~/task-manager/task-manager/.envをDocker内部の動作として修正する。 (修正必要な箇所を中心に記載)

APP_ENV=local
APP_URL=http://localhost:9080

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=task_manager
DB_USERNAME=root
DB_PASSWORD=root

次に、下記の手順でファイルをコピーして欲しい。

$ cd ~/task-manager/task-manager
$ cp .env .env.testing

次に、「開発環境」向けに、.env.testingdocker-compose.ymlの内容に合わせて修正する。

 



 
 




APP_ENV=testing
APP_URL=http://localhost:9080

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=9306
DB_DATABASE=task_manager
DB_USERNAME=root
DB_PASSWORD=root

APP_ENVDB_HOSTDB_PORT、の3つが.envから変わっている。 この点に注意して全体の修正を行なってもらいたい。

フレームワーク用のライブラリインストール

フレームワークで使用する、各種ライブラリをインストールする。 基本的に必要なものは、すでにcomposer.jsonに書かれてあるのでこれを元にインストールを行なう。

$ composer install

composer create-projectで新規作成していれば、不要なはずである。

実行環境の起動

$ cd ~/task-manager
$ docker-compose up -d

起動できたら、下記URLへアクセスするとLaravelの初期画面が表示される。

http://localhost:9080/

Laravelの大きい文字が画面に出て入れば成功だ。

Last Updated (JST): 7/7/2019, 2:32:08 PM