Laravelプロジェクトのデプロイ

セキュリティ対策のため開発用のモジュールを取り除きデプロイする。

メンテナンスモード

一時的にステータスコード503を返し停止中であることを伝える。

php artisan down

サービスを再開する。

php artisan up

Composer

モジュールはプロジェクトのvendorディレクトリ以下に配置されている。
bootstrapをインストールするとbootstrapディレクトリ以下に配置される。
開発用にrequire-devも含めてインストールしている状態から下記のコマンド実行すると、composer.jsonのrequireに限定してモジュールがインストールされる。

composer install --no-dev

インストール済みモジュールは下記のコマンドで確認できる。

composer show -i

開発でしか使用しないモジュールは下記のコマンドでインストールするとrequire-devに登録されインストールされる。

composer install 【モジュール名】 --dev

パッケージの更新はupdateコマンドを実行する。require-devに含まれるパッケージもインストールされるため、本番用サイト向けには install –no-dev を続けて実行する必要がある。

> composer update

Node.JS

モジュールはプロジェクトのnode_modulesディレクトリ以下に配置されている。
開発用にdevDependenciesも含めてインストールしている状態から下記のコマンドを実行すると、package.json のdependenciesに限定してインストールされる。

npm install --production

インストール済みモジュールは下記のコマンドで確認できる。
前述の動作に必要なモジュールだけをインストールした状態では依存関係を解決できない警告が表示される。

npm list

開発でしか使用しないモジュールは下記のコマンドでインストールするとdevDependenciesに登録されインストールされる。

npm install 【モジュール名】 --save-dev

パッケージの更新はupdateコマンドを実行する。updateコマンドによりdevDependenciesで指定されるパッケージがインストールされる。production環境でupdateを行うとdevDependenciesで指定されたパッケージもインストールされてしまう。この場合、node_modules ディレクトリを削除した後、npm install –production を実行する。

npm update

設定の変更

データベース

設定値をProduction用に変更

  • .envファイルのAPP_DEBUGをfalseに変更
  • .envファイルのAPP_URLをproduction用に変更
  • .envファイルのDB_系の設定をproduction用に変更

シンボリックリンク

/storage/app/public から /pubic/storage へシンボリックリンクが張られている必要があるが、サイト全体をコピーするとコピー元へリンクが張られる。
一旦リンクを削除した後、下記のコマンドを実行しリンクを張り直す。

php artisan storage:link