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_pattern
やexclude_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上でカスタムプロセスを開始することをサポートしていません。