2019年12月26日木曜日

【Linux】LaravelのDB設定

前回まで、どうにかこうにかいろいろ設定を行い、
CentOS7の環境にLaravelをインストールしアクセスできるようになったんでした。

しかしまだ、DBの設定(前にインストールしたMySQL)をしていないので、
今回はそこの部分を設定していきます。




1.MySQLの初期設定


コマンドを実行して、MySQLの初期設定を行います。
下記のコマンドを実行します。
この時にパスワードを求められるので、自動生成されたものを控えておきます。
cat /var/log/mysqld.log | grep 'password is generated'」で出てくる部分ですね。


mysql_secure_installation


ここで、使用するパスワードや、リモートログインの可否
現在の匿名ユーザーを消去するか、テストデータベースの初期化、
等をそれぞれ問われるので、設定していきましょう。
とりあえずパスワード設定以外はデフォルト設定でいいと思います。(適当)

何も入力しないでEnterを押すとデフォルト決定になるので
バシバシ先に進めてしまいましょう。


2.MySQL、DBテーブルの作成


MySQLをrootユーザーで実行しましょう。
パスワードは先ほど設定したもので出来ると思います。

mysql -u root -p

mysqlが実行出来たらLaravelで使用するデータベーステーブルを作成します。
今回は名前を合わせて作成しておこうかなと。

create database myapp;

mysqlの実行時はセミコロンが必要なので忘れないように…。
んで、成功したら一応確認しておきましょう。

show databases;

こんな感じで作成したデータベーステーブルがあれば
作成に成功しています。


データベースを使用するようコマンドを実行します。

use myapp;


3.データベースのユーザー作成


次にユーザーを作成します。
Laravelのデータベース設定で
「どのデータベーステーブルを」
「どのユーザーで」使用するかという設定をするのですが、
そのときに必要になるんですね。
rootだとちょっと問題ありそうなので、
ここで作成したユーザーに権限を与えて使うことにします。
下記のコマンドを実行します。

create user '「ユーザー名」'@'%' identified by '「パスワード」';
grant all on '「データベース名」'.* to '「ユーザー名」'@'%';

今回はデータベースを「myapp」で作成しています。
ユーザーは「myapp_user」、パスワードは任意で設定しておきましょう。
この場合は下記の様になりますね。
(パスワードは任意に設定してください!)

create user 'myapp_user'@'%' identified by '********';
grant all on 'myapp'.* to 'myapp_user'@'%';

とりあえずこれで最低限の設定はできたかな~と。
MySQLは終了してしまいましょう。

quit;


4.LaravelにDB設定を行う


Laravelで使用するデータベーステーブルとユーザーが用意できたので、
これをLaravelに設定していきましょう。

設定ファイルはプロジェクト直下の「.env」というファイルです。

vi .env

ここのDB_...という記述部分に設定を行っていきます。
iキー押して、編集していきます。



上の内容ではデータベース名を「my_app」
ユーザー名も「my_app」にしてしまっていますが、
このように記載すれば大丈夫です。
DB_CONNECTIONは今回MySQLを使用するので「mysql」と書きます。
DB_HOST、DB_PORTはデフォルトで大丈夫です。
外部につなぐ場合は別の値になるのだと思います。

ESCキーで編集モードを終了して、
「:wq」でviを終了します。

なんか、ターミナルによってviすごい使いにくいときないですか?


設定後に「.env」の設定をLaravelに適用する必要があるので
マイグレーションというのを行います。

php artisan migrate


5.Apache再起動して確認


データベースの設定が終わったら、
Apacheを再起動して動作確認しておきましょ。
設定がおかしければ、ここで変な表示が出てくると思います。

systemctl apache restart

ローカルホストにアクセスして、
Laravelのページが正しく表示されてくれれば大丈夫です。
これで、Laravel上でもデータベースが使用できる感じになるかなと。


結構設定することがたくさんあって大変ですね。
まだWebサービス開発のスタート地点まで来ていない気がします(汗)
少しずつ進めていきたい



0 件のコメント:

コメントを投稿