以前、こちらの記事でAWS Cloud9を使ったLaravelの開発環境構築をご紹介しました。
今回は、データベースの構築手順についてご紹介します。
本記事の最終的な目標は以下となります。
- MySQLを使えるようにする。
- Laravel標準の認証機能を使ってユーザーデータが登録できる。
実行するコマンドは多めですが、やることはそんなに難しいことはないので1つずつ着実に進めていけばOKです!
それでは早速、見ていきましょう。
各バージョンは、上記の記事でLaravelの開発環境を構築した段階でのバージョンが元になっています。
- php 7.1.25
- laravel 5.8.3
- MySQL 5.5.6
MySQL のバージョンを5.7にアップデートする
MySQLのバージョンをアップデートする前に、まずは標準でインストールされているMySQLのバージョンを確認してみましょう。
・MySQLのバージョンを確認する。
mysql --version
確認してみると、「5.5.62」と表示されている箇所がバージョン情報となります。
では、早速アップデートを行なっていきましょう。
まずはMySQLのプログラムを停止します。
・MySQLの実行を止める。
sudo service mysqld stop
・現在のMySQLのバージョンを削除する。
sudo yum -y erase mysql-config mysql55-server mysql55-libs mysql55
Complete!と表示されれば、正常に削除が完了です。
・MySQL5.7をインストールする。
sudo yum -y install mysql57-server mysql57
Complete!と表示されれば、無事インストールの完了です!
MySQLのバージョンを再度確認してみましょう!
・再度、MySQLのバージョンを確認する。
mysql --version
確認してみると、「5.7.25」と表示されている箇所がバージョン情報となります。
無事、バージョン5.7以上にアップデートできました!
ここで、先ほどMySQLのプログラムをストップしていたと思うので起動させます。
・MySQLの状態が停止状態であることを確認する。
sudo service mysqld status
・MySQLを起動させる。
sudo service mysqld start
・MySQLが起動中であることを確認する。
「mysqld is running」と表示されれば、起動確認OKです!
以下のコマンドを実行しておくと、次回からプロジェクト起動時に自動的にMySQLが起動するので、実行しておくと良いです。
sudo chkconfig mysqld on
MySQLにデータベースを生成する
次は、MySQLにログインしデータベースを作成します。
・MySQLにログインする。
mysql -u root -p
「Enter password」と表示されパスワードの入力を求められますが、そのままEnterボタンを押して大丈夫です。
はい、これでmysqlにログインすることができました。
次に新しくDBを作成していきます。
今回は「sample」というDBを新たに作りたいと思います。
・sampleDBを作成する。
create database sample;
Query OKと表示されれば、DBの作成が完了です!
作成したDBを確認するには次のコマンドを実行します。
・作成したDBを確認する。
show databases;
ちゃんとsampleDBが作られていることが確認できました!
.envファイルにDB接続情報を設定
続いて、DBの接続情報の設定を変更します。
この設定を変更しないとLaravelでMySQLを使ったアプリケーションの開発ができません。
設定ファイルはLaravelプロジェクトの直下にある「.env」ファイルが該当します。
(プロジェクト名が「test」場合、ファイルの場所は「test/.env」となります。)
ここで、初めてCloud9で環境構築を行っている場合、.envファイルが表示されていない場合があります。
「.」から始まるファイルは隠しファイルと呼ばれ、デフォルトでは表示されていないことがあるのです。
そこで、画面左側にあるメニューバーの歯車マークをクリックして、「Show Hidden Files」の項目をクリックすることで、隠しファイルを表示できます。
「.env」ファイルを開き、下記のように編集します。
・編集前
・編集後
これで設定ファイルの編集は完了です!
認証用のデータベースの作成
Laravelには標準でusersテーブルが用意されているので、今回はそれを利用して認証用のデータベースを作成します。
とりあえず、先ほど作成したsampleDBの中身を見てみましょう。
・sampleDBへ接続先を変える。
use sample;
これで、sampleDBに切り替わりました。
・sampleDBのテーブルを確認する。
show tables;
Empty setと表示され、まだ1つもテーブルが作成されていないことが確認できます。
では、マイグレートコマンドを実行し、sampleDBにuserテーブルを作成したいと思います。
別タブでターミナルコマンドを開き下記コマンドを実行します。
・プロジェクトへ移動する。
cd test
・マイグレーションコマンドを実行する。
php artisan migrate
make authコマンドでログイン画面を自動生成します。
・ログイン画面を自動生成する。
php artisan make:auth
「successfully」と表示されればOKです!
では、MySQLのコマンド画面に戻り、再度sampleDBのテーブルの中身を確認してみましょう!
・再度、sampleDBのテーブルを確認する。
show tables;
「migrations」テーブル、「password_resets」テーブル、「users」テーブルの3テーブルが作成されていることが確認できます。
動作確認
最後に、認証機能が動作するか確認してみましょう!
・動作確認
php artisan serve --port=8080
Laravelのデフォルトのホーム画面が表示され、右上に「LOGIN」と「REGISTER」のリンクが表示されていると思います。
では、「REGISTER」リンクを押して実際にユーザー登録を行ってみましょう!
それぞれの入力欄に適当に値を設定します。
(passwordは、デフォルトの設定だと8桁以上で入力する必要があります)
入力できたら「Register」ボタンをクリックします。
すると、Dashbord画面へ遷移します。
ここまでできたら、sampleDBのuserテーブルにデータが登録されているか確認してみましょう!
再び、MySQLのコマンド画面に戻ります。
・userテーブルのデータを確認する。
select * from users;
はい、ちょっと見切れていますが、先ほど入力した値がちゃんとDBに登録されていることが確認できました!
ちなみにpasswordは、ハッシュ処理がかけられており平文では登録されないようになっています!
パスワードなどの認証で使われるデータは、普通セキュリティの観点からそのままデータベースに保存することはありません。
そこで、ハッシュ処理をかけて簡単には特定できないような形で保存する必要があります。
Laravelで標準で用意されている認証機能では、元からハッシュ処理が実装されています。
便利ですね!
これで、MySQLの設定と動作確認は完了となります!
最後に
お疲れ様でした。
これでアプリケーションを開発するために必要な最低限の設定は完了です!
あとは、好きなようにDBにテーブルを追加して、そこにデータを登録していく仕組みを実装することで、「掲示板アプリ」や「ToDoリスト」アプリなどを作っていくことが可能になります!
今回行ったことは、プロジェクトを新規に立ち上げる際には必ず必要となる作業ですので、しっかり手順をマスターしておきましょう!
今回はここまでです!
ではでは〜♪( ´▽`)