LoginSignup
8
7

More than 3 years have passed since last update.

EC2のLaravel環境にMySQLを入れる AWS/Laravel6.0連載(3)

Last updated at Posted at 2019-08-31

はじめに

前回に続き、EC2のLaravel環境にMySQLを入れてみましょう。

前回の記事を参考に、EC2インスタンスにblogというLaravel6.0のアプリケーションを構築済みの状態を前提とします。
AWS EC2でLaravel6.0を入れる手順 AWS/Laravel連載(2)

MySQL入れる

以下記事を参考に、MySQL5.7を入れます。
今回は

新しいユーザーを作成する。

の手前まで実行しましょう。パスワードは一旦hogehogeとかに設定しておきます(本番環境では、こんな安易なパスワード設定しないように!)。

AWS Amazon Linux2にMySQL5.7を構築する

データベースとユーザーを作成

今回はblogという名前のdatabase、laravelというユーザーをmysqlに追加します。

$ mysql -u root -p
mysql> create database blog;
mysql> show databases;

ここではhogehogeというパスワードを設定していますが、デフォルトだと簡単すぎて弾かれます。
上記記事の中でパスワードの長さやポリシーを下げる設定を実行すればいけます。
が、繰り返しになりますが本番環境では、こんな安易なパスワード設定しないように。
今回も、hogehogeにせず、条件を満たす難しいパスワードを設定すれば問題ありません。

mysql> create user 'laravel'@'%' identified by 'hogehoge';
mysql> GRANT ALL ON blog.* TO 'laravel'@'%'; 
mysql> ¥q

laravelユーザーでblogに入れるか試します。

$ mysql -u laravel -D blog -p

パスワード入れて

mysql>

入れればOK。

LaravelからMySQLに接続

$ cd /var/www/blog
$ vi .env

.envのDB定義部分を以下の通りに修正し、保存して閉じます。

...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=laravel
DB_PASSWORD=hogehoge
...

保存したらmigrateを実行しましょう。
Laravelでは最初からusersテーブルのmigrationファイルが入っています。

$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (0.02 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (0.02 seconds)

successfullyが出ていればLaravelからMySQLへの接続及び実行が成功していますが、念の為見てみましょう。

$ mysql -u laravel -D blog -p
mysql> show tables;
+-----------------+
| Tables_in_blog  |
+-----------------+
| migrations      |
| password_resets |
| users           |
+-----------------+
3 rows in set (0.00 sec)

tinkerを使ってユーザーを新しく作ってみましょう。

$ php artisan tinker
>>> User::create(['name' => 'test', 'email' => 'test@example.com', 'password' => 'hogehoge']);
[!] Aliasing 'User' to 'App\User' for this Tinker session.
=> App\User {#2962
     name: "test",
     email: "test@example.com",
     updated_at: "2019-08-31 14:07:35",
     created_at: "2019-08-31 14:07:35",
     id: 1,
   }

ユーザーができたので取得してみます。

>>> $user = User::find(1);
=> App\User {#2953
     id: 1,
     name: "test",
     email: "test@example.com",
     email_verified_at: null,
     created_at: "2019-08-31 14:07:35",
     updated_at: "2019-08-31 14:07:35",
   }

せっかくなのでMySQLでも取得してみましょう。

$ mysql -u laravel -D blog -p
mysql> select * from users where id = 1;
+----+------+------------------+-------------------+----------+----------------+---------------------+---------------------+
| id | name | email            | email_verified_at | password | remember_token | created_at          | updated_at          |
+----+------+------------------+-------------------+----------+----------------+---------------------+---------------------+
|  1 | test | test@example.com | NULL              | hogehoge | NULL           | 2019-08-31 14:07:35 | 2019-08-31 14:07:35 |
+----+------+------------------+-------------------+----------+----------------+---------------------+---------------------+
1 row in set (0.00 sec)

これで、EC2インスタンスにMySQLを入れて動かすことができました。

ログイン機能を実装する

Laravel5系までは以下コマンドで作れましたが、6.0系はcomposerで入れる必要があります。
このコマンドを実行するだけで、Laravelのデフォルトホーム画面右上にログイン機能が追加されています。

php artisan make:auth

Laravel6.0での対応は連載5回目でやります。やりました。

EC2のLaravel6.0環境にauth(認証機能)を入れる AWS/Laravel連載(5)

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7