Cara menggunakan Phar untuk membungkus projek dalam PHP

WBOY
Lepaskan: 2023-06-27 17:46:01
asal
2122 orang telah melayarinya

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
Salin selepas log masuk

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

;extension=php_phar.dll
Salin selepas log masuk
  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
Salin selepas log masuk

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
Salin selepas log masuk
  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");
Salin selepas log masuk

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');
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan