ホームページ  >  記事  >  バックエンド開発  >  Phar を使用して PHP でプロジェクトをパッケージ化する方法

Phar を使用して PHP でプロジェクトをパッケージ化する方法

WBOY
WBOYオリジナル
2023-06-27 14:06:071979ブラウズ

Phar は PHP の拡張ライブラリです。PHP プロジェクト全体を実行可能ファイルにパッケージ化できるため、PHP や関連する依存ライブラリをインストールしなくても、プロジェクトをさまざまな環境で簡単に実行できます。同時に、この実行可能ファイルを暗号化して、プロジェクトのセキュリティを保護することもできます。

この記事では、Phar を使用して PHP プロジェクトをパッケージ化する方法を紹介します。

  1. Phar 拡張ライブラリのインストール

Phar 拡張ライブラリを使用するには、まず Phar 拡張ライブラリを PHP にインストールする必要があります。 Linux 環境では、次のコマンドを使用してインストールできます:

sudo apt-get install php-phar

Windows 環境では、php.ini ファイルで Phar 拡張機能を有効にし、次のステートメントの前のセミコロンを削除できます:

;extension=php_phar.dll
  1. プロジェクトのパッケージ化
#Phar は、プロジェクト全体を .phar ファイルにパッケージ化できるパッケージ化ツール phar を提供します。

ターミナルで次のコマンドを入力します:

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

このうち、-c gz は gzip 圧縮アルゴリズムを使用することを意味し、-f myapp.phar は出力ファイル名が myapp.phar であることを意味します。 path/to /myapp は、パッケージ化されるプロジェクトのパスを表します。

パッケージ化が完了したら、ターミナルで次のコマンドを実行して .phar ファイルを実行できます:

php myapp.phar

    Phar ファイルの暗号化
Phar の API を使用して .phar ファイルを暗号化し、プロジェクトのコードが逆コンパイルされたり改ざんされたりしないように保護できます。

たとえば、Phar::createDefaultStub() メソッドを使用してデフォルトの実行スクリプトを生成し、openssl を使用してこのスクリプトを暗号化できます。

<?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");

上記のコードでは、$key は暗号化されたキー、$iv は初期ベクトルです。実行スクリプトを暗号化した後、暗号化結果を .phar ファイルのヘッダーに挿入します。現時点では、.phar ファイルを正常に実行するにはキーを入力する必要があります。

    Phar ファイルの解凍
Phar ファイルを変更する必要がある場合は、PharData クラスを使用してファイルを解凍できます。

たとえば、次のコードを使用して、.phar ファイルを指定したディレクトリに解凍できます。

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

解凍が完了したら、プロジェクトを変更してデバッグできます。

概要

Phar は、PHP プロジェクト全体を実行可能ファイルに簡単にパッケージ化して暗号化できる、非常に実用的な PHP 拡張ライブラリです。実際のプロジェクト開発では、Phar を使用して展開プロセスを簡素化し、プロジェクトの運用効率とセキュリティを向上させることができます。

以上がPhar を使用して PHP でプロジェクトをパッケージ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。