はじめに
これまで私はDjangoでいくつかのWebアプリを作ってきましたが、とある事情から今後Laravelに触れる必要が出てきました。
そこで、既存のDjangoアプリをLaravelで再現するチュートリアル記事を作成し、その過程を通してLaravelについて学ぶことにしました。
題材には、CRUD機能、検索機能、認証機能を持ち、Djangoを勉強する際にも大変お世話になった、下記Webアプリとさせていただきました。
Djangoチュートリアル - 汎用業務Webアプリを最速で作る - Qiita
チュートリアル全体の構成
-
Laradockで環境を構築する(本記事)
-
認証機能を作る(作成予定)
環境
- macOS High Sierra 10.13.6
- php 7.2.16
- Laravel 5.5.45
- PostgreSQL 9.6.2
1. Laradockで環境構築する
ディレクトリ構造
本記事での環境構築を終えると、下記のディレクトリ構造が出来上がります。
├── data // データベースのディレクトリ
├── laradock // Docker関連ファイルのディレクトリ
└── src // Laravelのルートディレクトリ
Laradockのコピー
プロジェクトのルートとなるディレクトリに、Laradockをコピーします。
$ git clone https://github.com/Laradock/laradock.git
Laradockの.envファイルの編集
laradock
ディレクトリが出来上がるので、その配下のenv-example
ファイルをコピーし、.env
ファイルを作成します。
$ cd laradock
laradock $ cp env-example .env
laradock/.env
の以下2つの設定を編集します。
APP_CODE_PATH_HOST=../src
DATA_PATH_HOST=../data
PostgreSQLのバージョンの指定
PostgreSQLは9.6.12を使用することにします。
PostgreSQLのDockerファイルを以下の通り編集します。
FROM postgres:9.6.12
LABEL maintainer="Ben M <git@bmagg.com>"
CMD ["postgres"]
EXPOSE 5432
コンテナの起動
コンテナを起動します。
laradock $ docker-compose up -d --build workspace postgres php-fpm nginx
Laravelのインストール
Laravelをインストールします。
まず、起動したコンテナの中に入ります。
laradock $ docker-compose exec workspace bash
続いて、Laravelをインストールします。
バージョンは5.5.*
にします。
/var/www# composer create-project --prefer-dist laravel/laravel . "5.5.*"
##データベースを作成する
コンテナの中に入ったまま、今度はPostgreSQLに接続し、データベースを作成します。
まず、PostgreSQLに接続します。
/var/www# psql -U default -h postgres
パスワードを入力します。
Password for user default:
続いて、データベースを作成します。
データベース名は、sample
にします。
default=# create database sample;
PostgreSQLとの接続を終了します。
default=# \q
Laravelのタイムゾーンを日本時間にする
Laravelのタイムゾーンを日本時間にします。
<?php
return [
//略
'timezone' => 'Asia/Tokyo',
//略
];
.envファイルの編集
Laravelの.envファイルを編集し、LaravelからPostgreSQLに接続できるようにします。
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=sample
DB_USERNAME=default
DB_PASSWORD=secret
最後に
以上で環境構築は完了です。
次の記事では、テーブルとCRUD画面の作成を行います。