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を見てみましょう。
'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ファイルで指定しています。
: 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)での作業になります。
#ルートユーザでログイン 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ファイルを編集します。
データベースを作成したときの設定値をここで設定します。
DB_DATABASE=my_laravel DB_USERNAME=laravel_user DB_PASSWORD=a5tcvmiq
データベースの設定は以上で終わりです。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。