はじめてのVPS初期セットアップ⑬ ~ Laravelの設定+DB接続 ~

2021/02/09

「はじめてのVPSシリーズ」の第13回目です。

前回は Composer と Laravel6 をインストールしました。

Laravel のインストールを行い、スタート画面を表示させましたが、まだ設定やDBの接続は行っていません。

今回はこれをやろうと思います。

 

事前準備

DBおよびDBユーザの作成

ここではDB名やユーザ名・パスワードは以下のように設定します。

(※ご自身のサービス名に合わせて適宜変更してください。)

DB名:laraveltokyo_db
ユーザ名:laraveltokyo_user
パスワード:laraveltokyo_pass

後ほど、Laravel の.envファイルにもここで指定した値を入れるので、メモをしておいてください。

MySQL にログインして、Laravelアプリ専用のユーザとデータベースを作成します。


#DBにログイン
[root@example ~]#mysql -u root -p

# DBの作成
mysql> CREATE DATABASE laraveltokyo_db;

# DBユーザの作成
# パスワードの箇所はバッククォートではなくシングルクォートで囲む
mysql> CREATE USER `laraveltokyo_user`@`localhost` IDENTIFIED BY 'laraveltokyo_pass';

# 権限の割り当て
mysql> GRANT ALL PRIVILEGES ON `laraveltokyo_db`.* TO `laraveltokyo_user`@`localhost`;

 

MySQL5.7.8以降では脆弱なパスワードは以下のように怒られてしまいます。
実際にはもっと複雑なパスワード(8文字以上+数字+大文字+小文字+特殊文字)を設定してください。

 

新しいLinuxの教科書

ただ、読むだけではなく実践しながら進める形式になっています。(※コマンド一覧とか早引きの本ではありません)初心者がつまずくであろう箇所は補足説明がしっかり入っています。基本を大事にしている本なので、書いてあることはとてもわかりやすいです。それゆえ、中級者以上の方には物足りないかもしれませんが、初学者にはススメします!

公式サイトで詳細を見る

オススメ

 

手順

 

1) envファイルの作成

.envファイルがなければ .env.example をコピーしたものを.envファイルとして使います。


$ cp .env.example .env

 

2) envファイルの設定(アプリケーション設定)

.envファイル(設定ファイル)を開きます。


$ vim .env

 
まずは、アプリケーション設定を記述していきましょう。

以下のように編集していきます。


:
APP_NAME = LaravelTokyo
APP_ENV = production #本番
APP_KEY=base64:******
APP_DEBUG=false
APP_URL = https://laravel.tokyo
APP_TIMEZONE=Asia/Tokyo

LOG_CHANNEL=daily
:

 
以下、解説していきます。

 

APP_NAME:サイト名

APP_NAME は開発しているサイトの名前になります。


// APP_NAMEが反映される
echo config('app.name'); 

 

APP_ENV:環境名

開発しているサイトの実行環境を指定する項目になります。

  • local → ローカル(開発)
  • staging → ステージング
  • production → 本番

本番環境と開発環境の切り替えは.envファイルの APP_ENV を利用して行うことができます。

例えば、Blade のファイルに本番環境だけ GoogleAnalytics を入れる場合は以下のように書きます。


:
@if(config('app.env') === 'production')
  
@endif
:

 

APP_KEY:暗号化に使われるキー

Laravel がインストールされると各自ランダムで作成されます。

このキーを変更したい場合は以下のコマンドを実行します。


php artisan key:generate

 

APP_DEBUG:デバッグの表示設定

プログラムを実行したときに発生するエラーを表示するかどうかを設定します。

ローカル環境では APP_DEBUG は true、本番環境では false にしたほうがいいでしょう。

 

APP_URL:サイトのURL

サイトのURLに関連する部分で利用します。


//トップページURL
echo config('app.url');

 

APP_TIMEZONE:タイムゾーン

LaravelではデフォルトのタイムゾーンがUTCになっています。

設定を変えずにそのまま運用してしまうとアプリケーションが扱う日時がおかしくなってしまいます。

(※ログに吐かれる日時や、DBレコードの created_at/updated_at などが9時間前ずれてしまうなど)

Asia/Tokyo にするといいでしょう。

 

LOG_CHANNEL:ログ情報の設定

Laravelのログ設定は、stackとなっていて、複数のログが有効になるようになっています。

ただし、stackの中身を設定する部分では、基本となるsingleがひとつだけ指定されているので、実際にはデフォルトで利用されるログはひとつとなっています。

個人的には日ごとにログファイルを作成する daily がおすすめ。

 

3) envファイルの設定(データベース設定)

データベースへの接続情報は以下の6つになります。

「事前準備」で作成したDB名とユーザ名、パスワードを入力していきます。


:
DB_CONNECTION = mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laraveltokyo_db
DB_USERNAME=laraveltokyo_user
DB_PASSWORD=laraveltokyo_pass
:

 

4) envファイルの設定を反映

.envファイルの中身を書き換えた場合は、以下のコマンドを実行しないと反映されません。


$ php artisan config:clear

 

5) 動作確認(マイグレーション実行)

以下のコマンドを実行すると、Laravelでデフォルトで用意されているAuthで使用するユーザテーブルが作成されます。

DBとの接続がされていれば、migrate が成功するはずです。


$ php artisan migrate

 
以下のようにマイグレーションコマンドが通ればDBの接続はOKです。

ちなみに、マイグレーションに失敗して一度、初期化したい場合は以下のコマンドを実行してください。


# 全部ロールバックしてからマイグレーションし直す
$ php artisan migrate:refresh

 
以上です。

 

さくらのVPS

Linuxの知識がある方や初心者の枠から脱した人は「VPS」をおススメします!もし、あなたがデザイナーで静的ページのサイトしか作らないのであれば「レンタルサーバー」でOKです。ただ、Webプログラマーとして仕事をするのであればroot権限のあるVPSサーバーを最低1台、自分専用(学習用)を持っておいたほうがいいでしょう。

Laravelプログラマーの初心者が選ぶ学習用サーバーとは?

公式サイトで詳細を見る

オススメ

 

本庄マサノリ

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

>> Twitter をフォローする

 

-環境構築