2018/10/12
Laravel5では、環境設定ファイルの環境変数をローカル環境や、実働環境に応じて簡単に変更できるように.envファイルが配置されています。
Composer経由でLaravelのプロジェクトを作成すると.envファイルが作成されます。
今回はデータベースを作成して.envファイルにデータベースの設定をします。
またconfigフォルダにあるapp.phpも編集して環境設定も行います。
.envファイルとconfig/database.phpの関係
Laravel5.2ではDBの設定ファイルが二つあります。
1つは.envファイル。
もう1つはconfig/database.phpです。
まず、config/database.phpを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 'mysql' => [ 'driver' => 'mysql' , 'host' => env( 'DB_HOST' , 'localhost' ), 'port' => env( 'DB_PORT' , '3306' ), 'database' => env( 'DB_DATABASE' , 'forge' ), 'username' => env( 'DB_USERNAME' , 'forge' ), 'password' => env( 'DB_PASSWORD' , '' ), 'charset' => 'utf8' , 'collation' => 'utf8_unicode_ci' , 'prefix' => '' , 'strict' => false, 'engine' => null, ], |
envメソッドに注目します。
第1引数の定数が設定されているとそれを読み込み、設定されていなかったら第2引数の値を読み込みます。
第1引数の定数は.envファイルで指定しています。
1 2 3 4 5 | : DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret : |
どちらのファイルに設定してもいけます。
ただ、公式ドキュメントによると環境ごとに変わる情報(DBのログイン名とかパスワードとか)は基本的に.envファイルに記載するようになっています。
チュートリアル
実現したいこと
- データベースを作成してLaravelに設定する
手順
1-1. データベースの作成 (※XAMPPのphpMyadminで作成する場合)
phpMyadminを開き、「データベース」→「データベースを作成する」で作成します。
データベースを作成したら「特権」→「Add user account」でこのデータベースにアクセスできるユーザを作成します。
DB名: my_laravel
ユーザ: laravel_user
パスワード: a5tcvmiq
1-2. データベースの作成 (※CentOSでDBを作成する場合)
仮想マシンで操作する場合はCUI(Character-based User Interface)での作業になります。
1 2 3 4 5 6 7 8 9 10 11 | #ルートユーザでログイン mysql -u root #my_laravelというデータベースを作成 create database my_laravel; #他のユーザ(laravel_user)に対してデータベース(my_laravel)の権限を付与する grant all on my_laravel.* to laravel_user@localhost identified by 'a5tcvmiq' ; #MySQLコマンドラインツールを閉じる \q |
2. envファイルの設定
最上位階層(プロジェクト名のディレクトリ直下)にある.envファイルを編集します。
データベースを作成したときの設定値をここで設定します。
1 2 3 | DB_DATABASE=my_laravel DB_USERNAME=laravel_user DB_PASSWORD=a5tcvmiq |
データベースの設定は以上で終わりです。

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。