PHP
PostgreSQL
Laravel
Docker

Laravelチュートリアル - 汎用業務Webアプリを作る(1/4) Laradockで環境構築


はじめに

これまで私はDjangoでいくつかのWebアプリを作ってきましたが、とある事情から今後Laravelに触れる必要が出てきました。

そこで、既存のDjangoアプリをLaravelで再現するチュートリアル記事を作成し、その過程を通してLaravelについて学ぶことにしました。

題材には、CRUD機能、検索機能、認証機能を持ち、Djangoを勉強する際にも大変お世話になった、下記Webアプリとさせていただきました。

Djangoチュートリアル - 汎用業務Webアプリを最速で作る - Qiita


チュートリアル全体の構成


  1. Laradockで環境を構築する(本記事


  2. テーブルとCRUD画面を作る


  3. 検索画面とページネーションを作る


  4. 認証機能を作る(作成予定)



環境


  • macOS High Sierra 10.13.6

  • php 7.2.16

  • Laravel 5.5.45

  • PostgreSQL 9.6.2


1. Laradockで環境構築する


Laradockのコピー

プロジェクトのルートとなるディレクトリに、Laradockをコピーします。

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

laradockディレクトリ配下のenv-exampleファイルをコピーし、.envファイルを作成します。

$ cd laradock

laradock $ cp env-example .env


PostgreSQLのバージョンの指定

PostgreSQLは9.6.12を使用することにします。

PostgreSQLのDockerファイルを以下の通り編集します。


laradock/postgres/Dockerfile

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.*にします。

また、Laravelとしてのプロジェクト名は、srcにします。

/var/www# composer create-project --prefer-dist laravel/laravel src "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のタイムゾーンを日本時間にします。


src/config/app.php

<?php

return [
//略
'timezone' => 'Asia/Tokyo',
//略
];


.envファイルの編集

Laravelの.envファイルを編集し、LaravelからPostgreSQLに接続できるようにします。


src/.env

DB_CONNECTION=pgsql

DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=sample
DB_USERNAME=default
DB_PASSWORD=secret


最後に

以上で環境構築は完了です。

次の記事では、テーブルとCRUD画面の作成を行います。


参考