開発がひと段落した後、ソースコードとその実行環境をユーザに向けて公開する本番環境に配置する必要があります。この記事ではこれのPHP部、主にCopmoserのコマンドについて説明します。
PHPでよくあるフレームワークLaravelでは次が役に立ちます。とりあえずこの通りにできれば楽に終わります。内容をざっくりいえばできる限り最適化して、キャッシュ化する、といった話です。
デプロイ 6.x Laravel
Laravel関係なくPHPの本番環境デプロイ時に行うべきcomposerコマンドは次です。
composer install --optimize-autoloader --no-dev
安定して動くことがまず第一なので動作確認済みのバージョン構成を再現できるようにcomposer.lockを参照する composer installコマンドを用います。この際、無駄なファイルは無駄処理や無用な危険(テストコード用URLがある時は特に危険)を招くので –no-dev オプションを付けます。また実行速度を高速化するために–optimize-autoloaderオプションを付けます。このオプションではComposerのクラスオートローダマップを最適化しクラスの呼び出しを早くします。
たまにある問題が–no-devオプションでcomposer installした際、実行時にclass not foundが起きる問題です。これはオートロードやboot中に開発時のみ必要であると考えたあるパッケージを参照する必要が出てきて壊れるパターンが多いです。これが起きた際は次の様にcomposerコマンドを実行することでrequire-devからrequireへlockファイル含めて適切にバージョンアップをせずにパッケージを移動させられます。移動後に改めて composer install –optimize-autoloader –no-dev をしましょう。
composer require 対象のパッケージ