Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Phar untuk membungkus projek dalam PHP

Cara menggunakan Phar untuk membungkus projek dalam PHP

WBOY
WBOYasal
2023-06-27 14:06:072124semak imbas

Phar ialah perpustakaan sambungan untuk PHP Ia boleh membungkus keseluruhan projek PHP ke dalam fail boleh laku, supaya projek itu boleh dijalankan dengan mudah dalam persekitaran yang berbeza tanpa perlu memasang PHP dan perpustakaan bergantung yang berkaitan. Pada masa yang sama, fail boleh laku ini juga boleh disulitkan untuk melindungi keselamatan projek.

Artikel ini akan memperkenalkan cara menggunakan Phar untuk membungkus projek PHP.

  1. Pasang pustaka sambungan Phar

Untuk menggunakan pustaka sambungan Phar, anda perlu memasang sambungan Phar dalam PHP terlebih dahulu. Dalam persekitaran Linux, anda boleh menggunakan arahan berikut untuk memasang:

sudo apt-get install php-phar

Dalam persekitaran Windows, anda boleh mendayakan sambungan Phar dalam fail php.ini dan mengalih keluar koma bertitik sebelum pernyataan berikut:

;extension=php_phar.dll
  1. Package projek

Phar Alat pembungkusan phar disediakan, yang boleh membungkus keseluruhan projek ke dalam fail .phar.

Masukkan arahan berikut dalam terminal:

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

Antaranya, -c gz bermaksud menggunakan algoritma mampatan gzip, -f myapp.phar bermaksud nama fail output ialah myapp.phar, /path/to/myapp bermaksud projek laluan untuk dibungkus.

Selepas pembungkusan selesai, anda boleh melaksanakan arahan berikut dalam terminal untuk menjalankan fail .phar:

php myapp.phar
  1. Penyulitan fail Phar

Anda boleh menggunakan API Phar untuk menyulitkan fail .phar untuk melindungi kod projek daripada didekompilasi atau diusik.

Sebagai contoh, anda boleh menggunakan kaedah Phar::createDefaultStub() untuk menjana skrip pelaksanaan lalai, dan gunakan openssl untuk menyulitkan skrip ini:

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

Dalam kod di atas, $key ialah kunci penyulitan dan $iv ialah vektor awal. Selepas menyulitkan skrip pelaksanaan, masukkan hasil yang disulitkan ke dalam pengepala fail .phar. Pada masa ini, melaksanakan fail .phar memerlukan memasukkan kunci untuk dijalankan dengan jayanya.

  1. Unpack Phar file

Jika anda perlu mengubah suai fail Phar, anda boleh menggunakan kelas PharData untuk membongkarnya.

Sebagai contoh, anda boleh menggunakan kod berikut untuk membongkar fail .phar ke direktori yang ditentukan:

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

Selepas pembongkaran selesai, anda boleh mengubah suai dan nyahpepijat projek.

Ringkasan

Phar ialah perpustakaan sambungan PHP yang sangat praktikal yang boleh membungkus keseluruhan projek PHP dengan mudah ke dalam fail boleh laku dan menyulitkannya. Dalam pembangunan projek sebenar, Phar boleh digunakan untuk memudahkan proses penempatan dan meningkatkan kecekapan dan keselamatan operasi projek.

Atas ialah kandungan terperinci Cara menggunakan Phar untuk membungkus projek dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn