2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LaradockでLaravel開発環境構築

Last updated at Posted at 2022-02-22

#はじめに
こんにちは、ハルです。
laradockを用いてlaravelの開発環境を構築しました。
この記事は、その手順書になります。

※ 質問・指摘等ございましたら、受け付けています

#前提条件
・macOsであること
※ windowの方は下記の参考資料で別サイトを見ていただければと思います

・Dockerがインストールされていること
※ docker-composeが使用できること

・git がインストールされていること
※ git cloneできること

#各バージョン(意識したバージョンのみ)
・macOS Monterey 12.2.1
・php: 7.4
・laravel: 8.20.1
・mysql: 5.7

#サーバ構成
・nginx
  + php-fpm
・mysql
・redis
・APサーバ(workspace)

#ディレクトリ構成

// laravel_AとLaradockは同階層

my_project
|
├── laravel_A //既存プロジェクト(新規プロジェクトでも可)
│   ├── app
│   ├── bootstrap
│   └ ...
|
└── laradock //この後インストールします
    ├── adminer
    ├── aerospike
    └ ...

#環境構築手順

#1. Laradockをインストールする
## 1.1. laravel_A と同じ階層に移動

$ cd ~/laravel_A
$ ls
laravel_A    //laravel_A と同じ階層であること確認

## 1.2. Laradockをクローンする

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

##2. Laradockの設定

## 2.1. Laradockの.envを設定する

$ cd laradock
$ cp -a ./env-example ./.env
$ vim .env            // エディタで編集する場合は不要
.env
//laravelプロジェクトが存在する階層を記述_8行目付近
- APP_CODE_PATH_HOST=../
+ APP_CODE_PATH_HOST=../laravel_A/

//APサーバ(workspace)に置かれる階層を記述_10行目付近
- APP_CODE_PATH_CONTAINER=/var/www/
+ APP_CODE_PATH_CONTAINER=/var/www/laravel_A/

//mysqlの置き場所。修正で別プロジェクトとの競合を回避できる_16行目付近
- DATA_PATH_HOST=~/.laradock/data
+ DATA_PATH_HOST=~/.laradock/laravel_A/data

//任意のバージョンに変更_40行目付近
- PHP_VERSION=7.2
+ PHP_VERSION=7.4

//5.7に(最新バージョン8.0はエラーが出るそうです)_377行目付近
- MYSQL_VERSION=latest
+ MYSQL_VERSION=5.7

## 2.2. nginxを設定する

$ pwd
~/laradock     //カレント・ディレクトリ確認

$ cd nginx/sites
$ cp laravel.conf.example laravel_A.conf
$ vim laravel_A.conf 
laravel_A.conf
//他のプロジェクトと区別しやすいよう、ドメイン名を設定(推奨)
- server_name localhost;
+ server_name laravel_A.local;

//ディレクトリを作ったための対応
- root /var/www/public;
+ root /var/www/laravel_A/public;

## 2.3. mysqlを設定する

$ pwd    //カレント・ディレクトリ確認
~/laradock

$ cd mysql/docker-entrypoint-initdb.d/
$ cp createdb.sql.example createdb.sql
$ vim createdb.sql
createdb.sql
- #CREATE DATABASE IF NOT EXISTS `dev_db_1` COLLATE 'utf8_general_ci' ;
- #GRANT ALL ON `dev_db_1`.* TO 'default'@'%' ;
+ CREATE DATABASE IF NOT EXISTS `laravel_A` COLLATE 'utf8_general_ci' ;
+ GRANT ALL ON `laravel_A`.* TO 'default'@'%' ;

## 2.4. ビルドする

$ pwd    //カレント・ディレクトリ確認
~/laradock

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

## 2.5. APサーバにプロジェクトが存在するか確認する

$ pwd    //カレント・ディレクトリ確認
~/laradock

$ docker-compose exec --user=laradock workspace bash
APサーバ(workspace)
laradock@~~~~:/var/www$ ls
laravel_A       
※ 同階層にあるlaravelプロジェクト(今回はlaravel_A)が存在していることを確認

3. Laravel(laravel_A)の.env編集

$ pwd    //カレント・ディレクトリ確認
~/laravel_A

$ vim .env
.env
- DB_HOST=127.0.0.1
+ DB_HOST=mysql

- DB_DATABASE=default
+ DB_DATABASE=laravel_A  

- DB_USERNAME=homestead
+ DB_USERNAME=default

4. マイグレーションできるかどうか確認

$ pwd    //カレント・ディレクトリ確認
~/laradock

$ docker-compose exec --user=laradock workspace bash
APサーバ(workspace)
laradock@~~~~:/var/www$ cd laravel_A  
laradock@~~~~:/var/www/laravel_A$ php artisan migrate

5. hostsの設定を行う

$ vim /private/etc/hosts
hosts
+ 127.0.0.1 laravel_A.local
+ ::1 laravel_A .local

6. ブラウザに表示されていることを確認する

// hostファイルを編集したため、一旦止める
$ docker-compose stop
$ docker-compose start

http://laravel_A.local/
にアクセスして表示されれば環境構築完了です。
スクリーンショット 2022-02-21 23.29.34.png

#参考資料
## 1. Laradock公式

## 2. Qitta
LaradockでLaravel環境構築【手順書】
Laradockを使ったLaravel開発環境構築

## 3. その他ブログ等
【Laravel】Laradockで複数プロジェクトを動かす手順
※複数のプロジェクトを動かすこともできるようです。今度試します。

#途中のつまづき(参考URL共通)

## 1. Macのphpバージョンを任意指定したい時
Macでbrewインストール済のPHPのバージョン変更。

## 2. Mysqlが未導入だった
MySQLの開発環境を用意しよう(macOS)

#教材
今回初めてDockerに触れました。
その際に利用した教材を連携します。

#終わりに

約1週間で基本的知識を詰め込みましたが、なんとか開発環境構築することができました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?