最近フロントエンジニアからバックエンドに変わったハルです。
これから、Laravelの勉強を始めようと思います。
Laradockという、すぐにLaravel開発環境が用意できる便利なものがあるらしいですが、よしやるぞと言ってやろうと思ったらうまくできませんでした……。
少しつまずくだけでやる気をなくします……心が折れます……。
結局、最初のLaravelでのお勉強用の環境は、MAMPを立ち上げて用意しました。最初の一歩はそれでもいいとは思いますが、Dockerを使ってカッコ良くやりたい……!
Laravelで一人でサンプルサービスを作るのを数回作ってみたのですが、その中で、Laradockを起動するための準備をゆっくり学んでいくことができました。その内容をまとめ、下記の手順通りやればLaravelの勉強を開始できるようにしたのが今回の記事です。
今回の記事のゴールは下記の通りです。
- LaradockでLaravelが開発できるようにする
- phpMyAdminも使いたい
前の僕みたいな、これからスタートダッシュを切りたい方に向けて書いていきます。それではいってみましょう!
プロジェクトのフォルダを作成
laradock_project_name
という名前でディレクトリを作成しそのディレクトリに移動します。laradock_project_name
は好きな名前に変更してください。
$ mkdir laradock_project_name
$ cd laradock_project_name
git の用意
$ git init
Laradockを用意
$ git submodule add https://github.com/Laradock/laradock.git
Laravelの格納場所を用意する
$ mkdir src
laradock_project_name
├── laradock
└── src
Laradockの設定ファイルを編集する
サンプルファイルを複製し.envを用意
$ cd laradock
$ cp env-example .env
設定ファイルの編集
APP_CODE_PATH_HOST
Laravelのアプリケーションのディレクトリを指定します。
今回は laradock_project_name/src/
にするため下記のように変更します。
APP_CODE_PATH_HOST=../src/
DATA_PATH_HOST
このプロジェクトのデータの管理場所を変更します。
初期状態の~/.laradock/data
だと、複数プロジェクトと同じデータを参照したりと扱いづらいので変更します。
DATA_PATH_HOST=../.laradock/data
COMPOSE_PROJECT_NAME
dockerのコンテナ名を変更します。
下記はそのプロジェクトだとわかるように変更すれば良いと思うので、例として下記のように変更します。
COMPOSE_PROJECT_NAME=laradock-project_name
MYSQL_VERSION
MySQLのバージョンを指定します。
初期状態だと最新版の開発版をダウンロードしてしまったりするので、安定板のバージョンを指定します。
MYSQL_VERSION=5.7
Docker 起動
laradock
ディレクトリ内でdocker-compose up
をします。
nginx mysql phpmyadmin
をしっかり指定していること確認してから実行してください。
$ pwd
laradock_project_name/laradock
$ docker-compose up -d nginx mysql phpmyadmin
docker コンテナの起動確認
下記を実行し起動中のコンテナ名を確認します。
$ docker ps --format "table {{.Names}}"
NAMES
laradock-project_name_phpmyadmin_1
laradock-project_name_nginx_1
laradock-project_name_php-fpm_1
laradock-project_name_workspace_1
laradock-project_name_docker-in-docker_1
- phpmyadmin
- nginx
- php-fpm
- workspace
- docker-in-docker
というのが起動中なのを確認しました。
Laravelをインストール
まず、 workspaceコンテナに接続をします。
$ docker-compose exec workspace bash
ログインをしたら、下記を実行しLaravelをインストールします。
# composer create-project --prefer-dist laravel/laravel ./
インストールが終了したら、workspaceコンテナから抜けておきます。
# exit
Laravelの設定
workspaceコンテナから抜けたあとは、こちらのディレクトリを確認しましょう。
laradock_project_name/src/
ディレクトリに、Laravelのファイルがインストールされているかと思います。
Laravelの設定ファイルを変更したいと思います。
$ cd ../src/
$ pwd
laradock_project_name/src/
$ vim .env
DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
データベースのホスト名・データベース名・ユーザー名・パスワードを変更します。
laradock/.env
に設定されたものです。今回は変更していなかったので、そこに記述された初期のものです。
これでLaravelのお勉強環境が作れました。
php artisanコマンドを行いたい場合だと、先ほども出てきたworkspaceコンテナに接続してから
$ docker-compose exec workspace bash
php artisanコマンドを実行します。
# php artisan --version
Laravel Framework 5.8.8
MySQL コマンドを実行したい
MySQLを実行したい場合は、MySQLコンテナに接続します。
$ docker-compose exec mysql bash
# mysql --version
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
MySQLコマンドでログインする場合
# mysql -u default -p
パスワードが求められるので『secret
』を入力すればアクセスできます。
phpMyAdminを使いたい
ここまでやっていれば docker-compose up
でphpMyAdminを起動しています。
http://localhost:8080
にアクセスするとphpMyAdminが見れます。
- サーバ: mysql
- ユーザー名: default
- パスワード: secret
.env
で設定したものでログインできます。
作業を終了する時
docker-compose up -d
で実行しているので
( ディレクトリの場所: laradock_project_name/laradock )
$ docker-compose stop
で最後停止してあげましょう。
再度起動するときは同じ
( ディレクトリの場所: laradock_project_name/laradock )
$ docker-compose up -d nginx mysql phpmyadmin
のコマンドを実行します。
まとめ
僕のような入門者でもできるだけつまずかないよう、手順を書いてみました。スタートダッシュに役立てられればと思います。
これからも、私もLaravelさんとお友達になれるようにいっぱい遊びたいと思います。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。