作業環境
OS・ミドルウェア | バージョン |
---|---|
CentOS | CentOS Linux release 7.6.1810 (Core) |
Virtual Box | 6.0.8 r130520 (Qt5.6.3) |
Vagrant | 2.2.4 |
Laradockとは
LaravelをDockerで構築できるDockerイメージ。
※Laradock公式サイトは こちら
LaradockはNginx, Apache, PHP(任意バージョン), PostgreSQL, MySQLを自由に選択して簡単に立ち上げることができる。
Laradock環境構築
Docker用のディレクトリを作成する
今回は/home/にprojectsというディレクトリを用意する。
$ mkdir /home/docker_projects
作成したディレクトリにLaraockをクローンする
$ cd /home/docker_projects
$ git clone https://github.com/laradock/laradock.git
projectsにlaradockというディレクトリが作られる。
$ ls -al
total 4
drwxr-xr-x. 3 root root 22 Jun 17 17:19 .
drwxr-xr-x. 4 root root 39 Jun 17 17:19 ..
drwxr-xr-x. 66 root root 4096 Jun 17 17:20 laradock
Laradockの準備
laradock内に.envファイルを作成
$ cp ./laradock/env-example ./laradock/.env
Laradockを起動
今回はnginx, mysql, php-fpm, workspaceを立ち上げる。
# Dockerイメージのビルド
$ cd /home/docker_projects/laradock
$ docker-compose up -d --build workspace nginx php-fpm mysql
※2回目以降は--build
なしで実行できる。
Docker状態の確認
$ docker-compose ps
コンテナにログインする
※--user=root
のroot
を変更すれば他のユーザでログインできる。
$ docker-compose exec --user=laradock workspace bash
Laravelのインストール
下記のコマンドを実行してLaravelをインストールする
※ProjectNameの部分は任意のプロジェクト名にする
また末尾に"5.3.*"
のように記述するとlaravelのバージョンを指定できる
$ composer create-project laravel/laravel ProjectName
※コンテナ内(/var/www/)で作成したフォルダやファイルは、ホスト内のlaradockフォルダと同階層にもできている。
場所を変更したい場合はlaradock/.env
の設定を変更する
# 必要な場合だけ
APP_CODE_PATH_HOST=任意のパス
Laravelの初期設定
日本用の設定
設定ファイルを編集
$ vi ProjectName/config/app.php
'timezone' => 'Asia/Tokyo', #日本時間に設定
'local' => 'ja', #日本語に設定
ファイル権限の変更
$ cd ./ProjectName
$ chmod -R 777 storage
$ chmod -R 777 bootstrap/cache
データベースの接続設定
設定ファイルを編集する
$ vi ProjectName/.env
DB_CONNECTION=(mysql, pgsql, sqlite, sqlsrv)
DB_HOST=データベースに接続する為のIPなど
DB_DATABASE=データベース名
DB_USERNAME=ユーザ名
DB_PASSWORD=パスワード
Laravelのトップページを表示する
まだコンテナの中にいる場合は下記のコマンドで抜ける
$ exit
Nginxの設定を変更する
$ vi /home/docker_projects/laradock/nginx/sites/default.conf
ドキュメントルートの編集
# コンテナ内のパスで設定する
root /var/www/ProjectName/public;
dockerコンテナを再起動
# 停止
$ docker-compose stop
# 起動
$ docker-compose up -d workspace nginx php-fpm mysql