phar-Paketierung

phar ist eine in PHP verwendete Paketdatei, ähnlich wie JAR. Mit phar kannst du dein webman-Projekt in eine einzelne phar-Datei verpacken, was die Bereitstellung erleichtert.

Hier ein besonderer Dank an fuzqing für den PR.

Hinweis
Du musst die phar-Konfigurationseinstellung in php.ini deaktivieren, also phar.readonly = 0 setzen.

Installation des Befehlszeilenwerkzeugs

composer require webman/console

Paketierung

Führe im Stammverzeichnis des webman-Projekts den Befehl php webman build:phar aus.
Es wird eine Datei webman.phar im Verzeichnis bulid erstellt.

Die paketbezogenen Konfigurationen befinden sich in config/plugin/webman/console/app.php

Start- und Stoppbefehle

Start
php webman.phar start oder php webman.phar start -d

Stoppen
php webman.phar stop

Status anzeigen
php webman.phar status

Verbindungsstatus anzeigen
php webman.phar connections

Neustart
php webman.phar restart oder php webman.phar restart -d

Hinweise

  • Das nach der Paketierung erzeugte Projekt unterstützt kein Reload. Um den Code zu aktualisieren, ist ein Neustart erforderlich.

  • Um zu verhindern, dass die Paketdateigröße zu groß wird und zu viel Speicher verbraucht, kannst du die Optionen exclude_pattern und exclude_files in config/plugin/webman/console/app.php setzen, um unnötige Dateien auszuschließen.

  • Nach dem Ausführen von webman.phar wird ein Verzeichnis runtime im Verzeichnis von webman.phar erstellt, um Protokolle und andere temporäre Dateien zu speichern.

  • Wenn dein Projekt eine .env-Datei verwendet, musst du die .env-Datei im Verzeichnis von webman.phar platzieren.

  • Du solltest niemals Benutzer hochgeladene Dateien in der phar-Datei speichern, da das Arbeiten mit Benutzer hochgeladenen Dateien über das phar://-Protokoll sehr gefährlich ist (phar Deserialisierungsanfälligkeit). Benutzer hochgeladene Dateien müssen außerhalb des phar-Pakets auf einer separaten Festplatte gespeichert werden, siehe unten.

  • Wenn dein Geschäft das Hochladen von Dateien in das public-Verzeichnis erfordert, musst du das public-Verzeichnis separat im Verzeichnis von webman.phar speichern. In diesem Fall musst du config/app.php konfigurieren.

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

    Geschäftsanwendungen können die Hilfsfunktion public_path($relative_file_path) verwenden, um den tatsächlichen Standort des public-Verzeichnisses zu finden.

  • Beachte, dass webman.phar unter Windows keine benutzerdefinierten Prozesse unterstützt.