Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

これまで私は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で環境構築する

ディレクトリ構造

本記事での環境構築を終えると、下記のディレクトリ構造が出来上がります。

├── 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つの設定を編集します。

laradock/.env
APP_CODE_PATH_HOST=../src

DATA_PATH_HOST=../data

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

/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のタイムゾーンを日本時間にします。

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画面の作成を行います。

参考

shonansurvivors
SRE/DevOps/AWS勉強中 | JAWS-UG初心者支部運営メンバー
https://zenn.dev/shonansurvivors
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away