#はじめに
こんにちは、ハルです。
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 // エディタで編集する場合は不要
//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
//他のプロジェクトと区別しやすいよう、ドメイン名を設定(推奨)
- 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
- #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
laradock@~~~~:/var/www$ ls
laravel_A
※ 同階層にあるlaravelプロジェクト(今回はlaravel_A)が存在していることを確認
3. Laravel(laravel_A)の.env編集
$ pwd //カレント・ディレクトリ確認
~/laravel_A
$ vim .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
laradock@~~~~:/var/www$ cd laravel_A
laradock@~~~~:/var/www/laravel_A$ php artisan migrate
5. hostsの設定を行う
$ vim /private/etc/hosts
+ 127.0.0.1 laravel_A.local
+ ::1 laravel_A .local
6. ブラウザに表示されていることを確認する
// hostファイルを編集したため、一旦止める
$ docker-compose stop
$ docker-compose start
http://laravel_A.local/
にアクセスして表示されれば環境構築完了です。
#参考資料
## 1. Laradock公式
## 2. Qitta
LaradockでLaravel環境構築【手順書】
Laradockを使ったLaravel開発環境構築
## 3. その他ブログ等
【Laravel】Laradockで複数プロジェクトを動かす手順
※複数のプロジェクトを動かすこともできるようです。今度試します。
#途中のつまづき(参考URL共通)
## 1. Macのphpバージョンを任意指定したい時
Macでbrewインストール済のPHPのバージョン変更。
## 2. Mysqlが未導入だった
MySQLの開発環境を用意しよう(macOS)
#教材
今回初めてDockerに触れました。
その際に利用した教材を連携します。
#終わりに
約1週間で基本的知識を詰め込みましたが、なんとか開発環境構築することができました。