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 inphp.ini
deaktivieren, alsophar.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
undexclude_files
inconfig/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.