【Laravel初心者】Laravelのプロジェクトを本番環境リリース時にしたこと


前提とする環境

ubuntu  18.04
php     7.2
Laravel 5.8
mysql   5.7.25
apache  2.4.29

本番環境ですること

サーバー自体の基本設定(言語・時間設定等)は完了している前提で、自分がLaravelのプロジェクトをローカル環境と同様に動かすために必要だったことは以下になります。

  1. 各ミドルウェアの設定
  2. .envの作成
  3. vendor配下のインストール
  4. DB設定
  5. laravelプロジェクト内の権限の追加

各ミドルウェアの設定

ApacheやMySQLなどプロジェクトに必要な設定は当然する必要があります。
この部分は本記事では詳細割愛しますが、以前書いた記事で説明していますのでそちらを参照ください。
【入門】ubuntu18.04にLaravel5.8のプロジェクト作成する手順

.envの作成

.envは各環境に依存する設定を記述するファイルです。
laravelプロジェクトにおいてはデフォルトで.gitignoreに登録されているため、新しい環境にプロジェクトを持っていったら毎回作成する必要があります。

プロジェクト直下に置いてある.env.exampleをコピーして、.envを作成するのがおすすめです。
例えばlaravel+mysqlのシンプル構成なら、下記のように変更しておけば問題ないでしょう。

.envの例
APP_NAME=example 自分のプロジェクト名を入れましょう
APP_ENV=production 本番環境ならproductionに変更しましょう
APP_KEY= 後ほど説明します
APP_DEBUG=false 本番環境ならfalseにしましょう trueだと画面上にエラーが表示されます
APP_URL=http://hogehoge.com URLを入れましょう

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1 DBサーバーが別れている場合はDBサーバーのIPを入れましょう
DB_PORT=3306
DB_DATABASE=hoge このプロジェクトでアクセスするデータベースです
DB_USERNAME=fugauser このプロジェクトのDBアクセスで使うユーザーです
DB_PASSWORD=passwordhoge このプロジェクトのDBアクセスで使うパスワードです

composerでlaravelプロジェクトを直接作成した場合はAPP_KEYは最初から作成されているのですが、.env.exampleからコピーして手動で作成した場合は、以下のコマンドでアプリケーションキーを作成します。コマンド実行が完了すれば自動的に.envにキーが入力されます。

コマンドラインでartisanを実行する
php artisan key:generate

vendor配下のインストール

.envと同様に.gitignoreに設定されているため、vendorディレクトリ(laravel本体が置いてある)もインストールする必要があります。
以下のコマンドを実行すればvendor以下にlaravelがインストールされます。

composer install

DB設定

他のサイトなどをみた限りでは、データベース作成などの必要はなさそうですが、自分の場合マイグレーション実行とは別にデータベース作成が必要でした。結果的に行ったこと一覧は以下になります。

  • ユーザー作成
  • データベース作成
  • マイグレーション実行(php artisan migrate)

laravelプロジェクト内の権限の追加

自分の場合Laravelプロジェクトで何箇所か権限がないためFatal errorが出ました。
以下のページを参考に、いくつかディレクトリに権限を付与することでエラーが解消されました。

参照:Linuxコマンドのお勉強 再帰的にパーミッションを変更