◆当ページにはプロモーションが含まれています

Laravel

【2020年3月 更新】LaradockでLaravelを構築するまでの全手順【必見】

こんにちは。どんぶラッコです。

今回は、せっかくの機会なので、Laradockを使ってLaravelの環境を構築するまでの手順をまとめてみました!

前提として、Dockerがインストールされている事が条件です

Laradockを導入する

以前にもQiitaでまとめました。
【2019年2月】Laradockの初期環境設定方法

あとは公式ページ( https://laradock.io/getting-started/ ) を読んでおけば何も問題はありませんが、改めて重要な部分だけを抜粋。

1. git cloneします

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

laradock/というディレクトリが丸っとダウンロードされます。

2. 環境設定ファイル .envを作ります

cd laradock
cp env-example .env  # Laradockの環境を設定します

2-1. (オプション) .env ファイルの編集

※もし、プロジェクト毎に新しいlaradock環境を作りたい場合は、下記の変数をユニークなものに変更しておいてください

# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have seperate containers per project.
COMPOSE_PROJECT_NAME=laradock-sample # デフォルトではlaradockです

また、データの保存先をlaradock毎に分離したい場合は DATA_PATH_HOST を書き換えておきます。

# DATA_PATH_HOST=~/.laradock/data
DATA_PATH_HOST=.laradock/data

参照: https://qiita.com/tomokei5634/items/74c7734701fff8b99904

3. APP_CODE_PATH_HOST を編集する

引き続き.envファイルの中にある APP_CODE_PATH_HOSTの値を ../{作成したいLaravelプロジェクト名}に変更します。そうすることで、アプリケーションのディレクトリがどこにあるのか、指定できます。今回は app にしておきます。

# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../app/

そして、ディレクトリを作成しておきましょう。

mkdir app
こんな状態になってればOK

4. docker-composeでコンテナを立ち上げます

nginxとmysqlしか使わないので、ひとまずこの2つを立ち上げます。

docker-compose up -d nginx mysql

初回起動時は時間がかかります

5. Laradock環境に入る

rootユーザで入ると怒られるのでlaradockユーザで入ること

docker-compose exec --user=laradock workspace bash

下記のような表示になれば成功

laradock@e7b9098b1c92:/var/www# 

6. Laravel一式をダウンロードしてくる

今回は app というディレクトリ名にした。名前は好きなものでOKです

laradock@91eb494946ac:/var/www# composer create-project laravel/laravel ./

数分かかるので気長に待ちます。

7. 表示確認

http://localhost にアクセスしてLaravelの画面が表示されていればOK

8. Laravelの.envファイルを編集する

※先ほど編集した.envファイルはLaradockのもの!今回はLaravelの.envファイルを編集!!

DB_HOST=mysql # 127.0.0.1 から変更
DB_DATABASE=default # laravel から変更
DB_USERNAME=default # root から変更
DB_PASSWORD=secret

8-1. データベース接続確認をする

もう一回Docker環境に入ってmigration処理をした時に、
コマンドが通れば成功です

docker-compose exec workspace bash

エラーへの対処

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

php artisan migrate をした時に下記のエラーが発生することがあります。

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = default and table_name = migrations and table_type = 'BASE TABLE')

これはMySQL8.0になり、認証方式が変更になったことに起因するそうです。

解決法方はFendo181さんのIssueが参考になります。

まずは、mysqlコンテナに入り、
docker-compose exec mysql bash

MySQLにログインします。

mysql -root -p
# パスワードは root

そして、以下のコマンドを実行

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secret';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'default'@'%' IDENTIFIED WITH mysql_native_password BY 'secret';

これで解決します。

エンジニアにおすすめ転職サイト

マイナビIT AGENT
迷ったらまずはココ。求人数が多いため希望や条件にマッチする求人が見つかる!

レバテックキャリア
担当者のレベルが高い。エンジニア特化で15年の実績がある実績で初回提案での内定率驚異の90%!

JOIN
副業やフリーランスとして高額報酬案件を見つけるならJOIN。未経験者でも案件獲得実績豊富が強み!

\面白いと思ったら/

記事のシェア & Twitter のフォロー をお願いします!

@proglearn
一緒によく読まれている記事

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です