pharパッケージング

pharはPHPにおけるJARに類似したパッケージファイルであり、pharを使用してあなたのwebmanプロジェクトを単一のpharファイルにパッケージングして、デプロイを容易にすることができます。

ここで非常に感謝するのは fuzqing のPRです。

注意
php.iniのphar設定オプションを無効にする必要があります。つまり、phar.readonly = 0を設定してください。

コマンドラインツールのインストール

composer require webman/console

パッケージング

webmanプロジェクトのルートディレクトリでコマンド php webman build:phar を実行すると、buildディレクトリにwebman.pharファイルが生成されます。

パッケージングに関する設定は config/plugin/webman/console/app.php にあります。

起動・停止関連コマンド

起動
php webman.phar start または php webman.phar start -d

停止
php webman.phar stop

状態確認
php webman.phar status

接続状態確認
php webman.phar connections

再起動
php webman.phar restart または php webman.phar restart -d

説明

  • パッケージング後のプロジェクトはreloadをサポートしておらず、コードを更新するにはrestartを実行する必要があります。

  • パッケージファイルのサイズが大きくなりすぎてメモリを過剰に使用するのを避けるために、config/plugin/webman/console/app.php内のexclude_patternexclude_filesオプションを設定して、不要なファイルを除外することができます。

  • webman.pharを実行すると、webman.pharが存在するディレクトリにruntimeディレクトリが生成され、ログなどの一時ファイルを格納するために使用されます。

  • あなたのプロジェクトで.envファイルを使用している場合は、.envファイルをwebman.pharが存在するディレクトリに置く必要があります。

  • ユーザーがアップロードしたファイルをpharパッケージ内に保存しないでください。なぜなら、phar://プロトコルでユーザーがアップロードしたファイルを操作することは非常に危険だからです(phar逆シリアライズの脆弱性)。ユーザーがアップロードしたファイルはpharパッケージの外のディスクに個別に保存する必要があります。以下を参照してください。

  • あなたのビジネスがpublicディレクトリにファイルをアップロードする必要がある場合は、publicディレクトリを独立させてwebman.pharが存在するディレクトリに置く必要があり、その場合はconfig/app.phpを設定する必要があります。

    'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',

    ビジネスはヘルパー関数public_path($ファイルの相対位置)を使用して実際のpublicディレクトリの位置を見つけることができます。

  • 注意:webman.pharはWindows上でカスタムプロセスを開始することをサポートしていません。