Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie Phar zum Verpacken von Projekten in PHP

So verwenden Sie Phar zum Verpacken von Projekten in PHP

WBOY
WBOYOriginal
2023-06-27 14:06:071979Durchsuche

Phar ist eine Erweiterungsbibliothek für PHP. Sie kann das gesamte PHP-Projekt in eine ausführbare Datei packen, sodass das Projekt problemlos in verschiedenen Umgebungen ausgeführt werden kann, ohne dass PHP und zugehörige abhängige Bibliotheken installiert werden müssen. Gleichzeitig kann diese ausführbare Datei auch verschlüsselt werden, um die Sicherheit des Projekts zu schützen.

In diesem Artikel erfahren Sie, wie Sie Phar zum Verpacken von PHP-Projekten verwenden.

  1. Installieren Sie die Phar-Erweiterungsbibliothek

Um die Phar-Erweiterungsbibliothek verwenden zu können, müssen Sie zunächst die Phar-Erweiterung in PHP installieren. In einer Linux-Umgebung können Sie den folgenden Befehl zur Installation verwenden:

sudo apt-get install php-phar

In einer Windows-Umgebung können Sie die Phar-Erweiterung in der php.ini-Datei aktivieren und das Semikolon vor der folgenden Anweisung entfernen:

;extension=php_phar.dll
  1. Packen Sie das Projekt ein

Phar Es wird ein Paketierungstool phar bereitgestellt, mit dem das gesamte Projekt in eine .phar-Datei gepackt werden kann.

Geben Sie den folgenden Befehl in das Terminal ein:

php phar -c gz -f myapp.phar /path/to/myapp

Darunter bedeutet -c gz die Verwendung des gzip-Komprimierungsalgorithmus, -f myapp.phar bedeutet, dass der Name der Ausgabedatei myapp.phar ist, /path/to/myapp bedeutet das Projekt Pfad, der verpackt werden soll.

Nachdem die Verpackung abgeschlossen ist, können Sie den folgenden Befehl im Terminal ausführen, um die .phar-Datei auszuführen:

php myapp.phar
  1. Phar-Dateiverschlüsselung

Sie können die API von Phar verwenden, um die .phar-Datei zu verschlüsseln und den Projektcode zu schützen vor Dekompilierung oder Manipulation.

Zum Beispiel können Sie die Methode Phar::createDefaultStub() verwenden, um ein Standardausführungsskript zu generieren, und openssl verwenden, um dieses Skript zu verschlüsseln:

<?php
$phar = new Phar('myapp.phar');
$phar->startBuffering();
$phar->buildFromDirectory('/path/to/myapp');
$phar->setStub($phar->createDefaultStub('index.php'));

$key = 'mysecretkey';
$iv = substr(md5($key), 0, 16);
$phar->setSignatureAlgorithm(Phar::SHA256);
$phar->stopBuffering();
$phar->setMetadata(['encryption_key' => $key]);
$content = file_get_contents('phar://myapp.phar/index.php');
$encrypted = openssl_encrypt($content, 'AES-256-CBC', $key, null, $iv);
$phar->setStub("<?php __HALT_COMPILER(); ?>$encrypted");

Im obigen Code ist $key der Verschlüsselungsschlüssel und $iv der Anfangsvektor. Fügen Sie nach der Verschlüsselung des Ausführungsskripts das verschlüsselte Ergebnis in den Header der .phar-Datei ein. Zu diesem Zeitpunkt erfordert die Ausführung der .phar-Datei die Eingabe des Schlüssels, um erfolgreich ausgeführt zu werden.

  1. Phar-Datei entpacken

Wenn Sie die Phar-Datei ändern müssen, können Sie sie mit der PharData-Klasse entpacken.

Zum Beispiel können Sie den folgenden Code verwenden, um die .phar-Datei in das angegebene Verzeichnis zu entpacken:

<?php
$phar = new Phar('myapp.phar');
$phar->extractTo('/path/to/extract');

Nachdem das Entpacken abgeschlossen ist, können Sie das Projekt ändern und debuggen.

Zusammenfassung

Phar ist eine sehr praktische PHP-Erweiterungsbibliothek, die das gesamte PHP-Projekt problemlos in eine ausführbare Datei packen und verschlüsseln kann. In der tatsächlichen Projektentwicklung kann Phar verwendet werden, um den Bereitstellungsprozess zu vereinfachen und die Effizienz und Sicherheit des Projektbetriebs zu verbessern.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Phar zum Verpacken von Projekten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn