10
3

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 5 years have passed since last update.

Laravel + Laradockで環境構築から認証処理が動くところまで一気にやる

Posted at

TL;DR

LaravelでWebアプリケーション開発する環境をLaradock使って作ったけど、大小ちょいちょいつまずくところもあったので、次からノンストップでいけるようにまとめておく

環境

Mac OS X 10.13.6

準備

Docker CE for MacをDL&インストールして、dockerdocker-composeコマンドが使えるようにしておく

Docker IDが必要なので作っておく

想定するゴール

プロジェクト名はsampleということで

work
├── laradock
└── sample
  • PHP 7
  • Laravel 5.6
  • MySQL 5.7
  • Nginx(+php-fpm)

こんな感じで、localhostで最低限の認証処理が動くWebアプリが確認できるところ

スタート

まずはプロジェクト用ディレクトリ作成からworkspaceのコンテナ動かすところまで

# on local
$ mkdir work && cd work
$ git clone https://github.com/laradock/laradock.git
$ cd laradock
$ cp env-example .env
$ docker-compose up -d workspace

workspaceコンテナ上でLaravelプロジェクトを作成する

# on local
$ docker-compose exec --user=laradock workspace bash
# on workspace container
$ composer create-project laravel/laravel sample
$ exit

.envを2箇所書き換える

# on local
$ vim .env 
APP_CODE_PATH_HOST=../
MYSQL_VERSION=latest
↓
APP_CODE_PATH_HOST=../sample
MYSQL_VERSION=5.7

書き換えたら一度workspaceのコンテナは落として、新たにnginxmysqlと一緒に起動する

# on local
$ docker-compose down
$ docker-compose up -d workspace nginx mysql

立ち上がったらlocalhost動いてるはずなので、ブラウザからアクセスして一度動作確認する

スクリーンショット 2018-08-28 22.05.47.png

Laravelの画面が確認できたら一旦OKで、このままだとこのページしか操作できないので、認証周りを動かす

まずLaravelプロジェクト側の.envの設定が、デフォルトだとHomesteadってLaravel用のVagrant環境を使った想定になっているので、Laradockで動くように一部変更する必要がある

$ vim ../sample/.env
DB_HOST=127.0.0.1
DB_DATABASE=homestead
DB_USERNAME=homestead
↓
DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default

あと認証のページと必要なテーブルを作成するため、workspaceのコンテナ上でコマンド実行する

# on local
$ docker-compose exec --user=laradock workspace bash
# on workspace container
$ php artisan make:auth
$ php artisan migrate
$ exit

これでもう一度ブラウザからlocalhostにアクセスして確認する

スクリーンショット 2018-08-28 22.10.37.png

右上にLOGINREGISTERのリンクが出現しているはず

これでもうREGISTERからアカウント登録して、LOGINからログインするってところまで動かせるようになっているはずなので、ゴールである

ハマりどころ

まず、デフォルトでそのまま立ち上げるとmysqlは8系が入るが、8系だとmigrateでエラーになる

この辺の話だと思われるが、8系全然触ったことないし、情報量的にもまだ5系の方が安心感あるし、ってことで5.7を明示的に指定するようにした

あとLaradockのmysqlはデフォルトで~/.laradock/dataってところにデータを永続化してたりするので、知らずに up/down 繰り返してると「データ消えてないな〜?」なんてハマる(.envDATA_PATH_HOSTって設定値でちゃんと書いてある)

他にも途中で「データベース名変えよう〜」とか脇道逸れながらやってたら結構ちょこちょこハマったので、気をつけたほうがいいというか、まずはここまで動かせること確認してから細かいところ見直すほうがいいと思った(ので記事書いた)

10
3
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
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?