カテゴリー: BackEnd

Laravelの開発環境構築

はじめに

今回の記事は、PHPのフレームワークであるLaravelの開発環境構築に関する記事です。Laravelの基礎知識に関してはこちらをご覧ください。

開発環境構築

Laravelの開発環境構築には大きく分けて2つの方法があります。

  • Homesteadを利用する方法
  • Laradockを利用する方法

これらの特徴について簡単に説明します。

Homestead

HomesteadはLaravelの実行に必要なPHP、Nginx、Webサーバ、MySQLなどのほか、Redis、Mailhog(簡易メールサーバ)Nodeなどがセットになっています。はじめから様々なソフトウェアが揃っているため、初学者が利用するならこちらが良いのではないでしょうか(もちろんヘビーユーザでも不足なく利用できます)

Laradock

Laradockは名前の通りDocker上で動作します(HomesteadはVagrant上で動作します)Laradockでは下記の機能が別々のコンテナ上で動作します。

  • Nginx
  • PHP-FPM
  • MySQL
  • workspace(Laravelの開発に必要な環境がまとまっているもの)
  • phpMyAdmin

Laradockで開発環境構築

今回は個人的な興味からLaradockを利用して開発環境を構築しました。既にGitとDockerが利用できている前提で進めます。

Laradockのダウンロード

適当なディレクトリにLaradockをダウンロードします。今回はユーザディレクトリの直下に「laradock_test」ディレクトリを作成して、そこにダウンロードします。

$ mkdir laradock_test
$ cd laradock_test/
$ git clone https://github.com/Laradock/laradock.git
Cloning into 'laradock'...
remote: Enumerating objects: 8397, done.
remote: Total 8397 (delta 0), reused 0 (delta 0), pack-reused 8397
Receiving objects: 100% (8397/8397), 7.92 MiB | 4.04 MiB/s, done.
Resolving deltas: 100% (4435/4435), done.

コンテナの設定ファイルを作成

ダウンロードしたlaradockディレクトリのenv-exampleファイルをコピーして.envファイルを作成します。

$ cd laradock/
$ cp env-example .env

設定ファイルに以下の3行を追加します。

DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

コンテナの初期化

docker-compose upコマンドでコンテナを初期化します。

$ docker-compose up -d nginx mysql phpmyadmin redis workspace

初期化が終わったら正しく起動できたか確認します。下記のように表示されれば問題ありません。

$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                      NAMES
344dc39e69be        laradock_nginx        "/bin/bash /opt/star…"   6 minutes ago       Up 6 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   laradock_nginx_1
0be102733067        laradock_php-fpm      "docker-php-entrypoi…"   6 minutes ago       Up 6 minutes        9000/tcp                                   laradock_php-fpm_1
13c4721d4e79        laradock_phpmyadmin   "/run.sh supervisord…"   6 minutes ago       Up 6 minutes        9000/tcp, 0.0.0.0:8080->80/tcp             laradock_phpmyadmin_1
ec89a55fe5d7        laradock_workspace    "/sbin/my_init"          6 minutes ago       Up 6 minutes        0.0.0.0:2222->22/tcp                       laradock_workspace_1
801267ad2107        laradock_mysql        "docker-entrypoint.s…"   6 minutes ago       Up 6 minutes        0.0.0.0:3306->3306/tcp                     laradock_mysql_1
4cb641f21211        docker:dind           "dockerd-entrypoint.…"   6 minutes ago       Up 6 minutes        2375/tcp                                   laradock_docker-in-docker_1

プロジェクトの作成

試しにプロジェクトを作成してみます。プロジェクトはworkspaceコンテナ上に作成されます。まず、コンテナにログインします。

$ docker-compose exec --user=laradock workspace bash

予め用意されているlaradockユーザでログインすると、/var/wwwディレクトリに入ります。続いてこのディレクトリで新規プロジェクトを作成します。

$ composer create-project laravel/laravel sample --prefer-dist "5.5.*"

プロジェクトが作成できたらコンテナからログアウトします。

$ exit

共有ディレクトリの設定

laradockディレクトリの.envファイルを開いて共有ディレクトリの設定を変更します。

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

### Paths #################################################

# Point to the path of your applications code on your host
# APP_CODE_PATH_HOST=../ # コメントアウト
APP_CODE_PATH_HOST=../sample # 追加

# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
APP_CODE_PATH_CONTAINER=/var/www:cached

# Choose storage path on your machine. For all storage systems
DATA_PATH_HOST=~/.laradock/data

変更後、コンテナを再起動して設定を反映させます。

$ docker-compose stop
Stopping laradock_nginx_1            ... done
Stopping laradock_php-fpm_1          ... done
Stopping laradock_phpmyadmin_1       ... done
Stopping laradock_workspace_1        ... done
Stopping laradock_mysql_1            ... done
Stopping laradock_docker-in-docker_1 ... done
$ docker-compose up -d nginx mysql
Recreating laradock_docker-in-docker_1 ... done
Starting laradock_mysql_1              ... done
Recreating laradock_workspace_1        ... done
Recreating laradock_php-fpm_1          ... done
Recreating laradock_nginx_1            ... done

ブラウザからアクセスする

ブラウザから「http://localhost」にアクセスします。

さいごに

Laravelの開発環境構築について手順を紹介しました。

おすすめ書籍

    

Hiroki Ono

シェア
執筆者:
Hiroki Ono
タグ: phplaravel

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

3週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

1か月 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前