LaradockでLaravelの開発環境を構築する方法【Mac編】
今回はLaradockでLaravelの開発環境を構築する方法を記載します。
Laradockについて
プログラミングを始めるにあたり一番最初にぶち当たる壁が環境構築だと思います。Laravelの場合、Webサーバーやデータベースなどの環境を構築する必要があります。
早くLaravelの学習に移りたいのに、環境構築で戸惑ってしまい学習をやめてしまう方を多数見てきました。
そんな方にLaradockでの環境構築がおすすめです。
Laradockを利用すると、WebサーバーやデータベースをDocker上に簡単に構築することができます。この記事参考にLaradockをサクッと構築して、Laravelの学習にうつっていただければと思います。
Dockerのインストール
Laradockを利用するにあたり、まずはDockerをインストールします。下記記事を参考にDockerをインストールしてください。
Laradockでの環境構築
それではLaradockでの環境構築を行います。
ここからはターミナルで実行していきます。
ターミナルの実行方法ですが、mac右上の虫眼鏡マークをクリックし
「ターミナル」と入力し、「ターミナル」をクリックします。
するとターミナルが表示されます。
Laradockのインストール
それではLaradockのインストールを開始します。
まずはプロジェクトを配置するディレクトリを作成します。
今回は「laravelprj」というディレクトリを作成します。下記実行します。
mkdir laravelprj
作成したディレクトリに移動します。
cd laravelprj
次に作成したディレクトリにlaradockをインストールします。GitHubからlaradockのファイルをコピーします。
git clone https://github.com/LaraDock/laradock.git
こちら実行するとCloning into 'laradock'...と数行のメッセージが表示されます。
完了するとlaravelprj内にlaradockディレクトリが作成されます。「ls」コマンドで確認してみると、「laradock」というディレクトリが作成されていることが確認できます。
ls
laradock
次にlaradockディレクトリに移動します。
cd laradock
Laradockの.envファイルを作成
次にLaradockの設定ファイル .env を作成します。
laradockディレクトリ内にある env-example ファイルをコピーし、 .env を作成します。
cp env-example .env
次に.envファイルを修正します。
ここからはエディタで作業します。ご利用のエディタでlaradockディレクトリ内にある .envファイルを開いてください。
.env ファイル内より DATA_PATH_HOST=~/.laradock/data を検索します。
こちらを下記に変更してください。
DATA_PATH_HOST=.laradock/data
デフォルトの ~/.laradock/data のままだと、複数プロジェクトと同じデータを参照したりと利用し難いため上記に変更します。
MySQLのバージョンの設定
次にMySQLの設定を行います。
デフォルトの状態だと最新版の開発版をダウンロードしてしまう可能性があるので、現時点での安定のバージョンを指定します。
.env ファイルより MYSQL_VERSION=latest と記載ある箇所を検索します。
こちらのMYSQL_VERSIONを下記の様に修正します。
MYSQL_VERSION=5.7.28
※MySQLのバージョンについては、こちらよりご自身で確認いただき最新版をご指定ください。
また、こちらに記載されている下記箇所はMySQLのデータベース名、ユーザ名、パスワードになります。
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
データベース名等変更したい場合は、こちらの「default」や「secret」の箇所を変更してください。今回は変更せずにこのまま利用します。
Dockerを利用して開発環境を起動
それではDockerにて開発環境を起動します。Docker上で動く各サービスの単位をコンテナと呼びます。
今回は下記3つのコンテナを起動します。
- nginx
- MySQL
- phpMyAdmin
laradockディレクトリ内にて下記実行します。
docker-compose up -d nginx mysql phpmyadmin
すると、ターミナルで下記の様に表示されます。
Recreating laradock_docker-in-docker_1 ... done
Creating laradock_mysql_1 ... done
Creating laradock_phpmyadmin_1 ... done
Recreating laradock_workspace_1 ... done
Recreating laradock_php-fpm_1 ... done
Recreating laradock_nginx_1 ... done
起動が完了したら、http://localhost にアクセスします。
すると以下の様に404の画面が表示されます。
現時点ではこの状態でOKです。
次にphpMyAdminも確認します。下記にアクセスします。
下記画面が表示されます。
下記ログイン情報を記入し、「実行」をクリックするとログインできます。
サーバ:mysql
ユーザ名:default
パスワード:secret
Laravelのインストール
それではLaravelをインストールします。まずはworkspaceコンテナに移動します。
laradockディレクトリ内にて下記実行します。
docker-compose exec --user=laradock workspace bash
すると、下記の様に表示されます。
laradock@3ab39a101111:/var/www$
こちらでコンテナに移動できたので、下記実行します。
composer create-project laravel/laravel src
これでlaravelprjディレクトリ内に「src」ディレクトリが作成されます。
ここまで完了したら、workspaceコンテナを抜けます。下記コマンドを実行します。
exit
LaravelとMySQLの接続
次にLaravelとMySQLの接続を行います。先ほど作成されたsrcディレクトリに移動します。
cd ../src
エディタでsrcディレクトリ内のにある .env ファイルを開きます。(laradockディレクトリの.envファイルではないのでご注意ください。)
.envファイルを開いたら、MySQLの下記箇所を修正します。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
こちらを先ほど設定したデータベース名やユーザ名、パスワードを記載します。
今回は下記の様に修正します。
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
これでlaravelとMySQLの接続が完了です。
アプリケーションのPATHの変更
次にLaravelのアプリケーションのディレクトリを指定します。
laradockディレクトリに移動します。
cd ../laradock
laradockディレクトリ内の.envファイルに記載の APP_CODE_PATH_HOST=../ を検索します。
今回は laravelprj/src/ に指定するため下記のように変更します。
APP_CODE_PATH_HOST=../src/
コンテナ再起動
最後にnginxコンテナを再起動します。laradockディレクトリ内で下記実行します。
docker-compose up -d nginx
再起動完了したら、再び「http://localhost/」にアクセスしてください。
するとLaravelの初期画面が表示されます。
以上でLaradockでLaravel開発環境構築方法は完了です。
お疲れ様でした。
おまけ:dockerの停止方法
作業を終了し、dockerを停止する方法を記載します。
まずlaradockディレクトリに移動します。
cd laradock
次に、下記コマンドを実行します。
docker-compose stop
すると、下記の様に表示され停止されます。
Stopping laradock_nginx_1 ... done
Stopping laradock_php-fpm_1 ... done
Stopping laradock_workspace_1 ... done
Stopping laradock_docker-in-docker_1 ... done
Stopping laradock_phpmyadmin_1 ... done
Stopping laradock_mysql_1 ... done
以上です。