Phar est une bibliothèque d'extensions pour PHP. Elle peut regrouper l'intégralité du projet PHP dans un fichier exécutable, afin que le projet puisse être facilement exécuté dans différents environnements sans avoir besoin d'installer PHP et les bibliothèques dépendantes associées. Parallèlement, ce fichier exécutable peut également être crypté pour protéger la sécurité du projet.
Cet article expliquera comment utiliser Phar pour empaqueter des projets PHP.
Pour utiliser la bibliothèque d'extensions Phar, vous devez d'abord installer l'extension Phar en PHP. Dans un environnement Linux, vous pouvez utiliser la commande suivante pour installer :
sudo apt-get install php-phar
Dans un environnement Windows, vous pouvez activer l'extension Phar dans le fichier php.ini et supprimer le point-virgule avant l'instruction suivante :
;extension=php_phar.dll
Phar Un outil de packaging phar est fourni, qui peut regrouper l'intégralité du projet dans un fichier .phar.
Entrez la commande suivante dans le terminal :
php phar -c gz -f myapp.phar /path/to/myapp
Parmi elles, -c gz signifie utiliser l'algorithme de compression gzip, -f myapp.phar signifie que le nom du fichier de sortie est myapp.phar, /path/to/myapp signifie le projet chemin à empaqueter.
Une fois l'empaquetage terminé, vous pouvez exécuter la commande suivante dans le terminal pour exécuter le fichier .phar :
php myapp.phar
Vous pouvez utiliser l'API de Phar pour crypter le fichier .phar afin de protéger le code du projet d'être décompilé ou falsifié.
Par exemple, vous pouvez utiliser la méthode Phar::createDefaultStub() pour générer un script d'exécution par défaut, et utiliser openssl pour chiffrer ce script :
<?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");
Dans le code ci-dessus, $key est la clé de chiffrement et $iv est la vecteur initial. Après avoir chiffré le script d'exécution, insérez le résultat chiffré dans l'en-tête du fichier .phar. À l’heure actuelle, l’exécution du fichier .phar nécessite la saisie de la clé pour s’exécuter correctement.
Si vous devez modifier le fichier Phar, vous pouvez utiliser la classe PharData pour le décompresser.
Par exemple, vous pouvez utiliser le code suivant pour décompresser le fichier .phar dans le répertoire spécifié :
<?php $phar = new Phar('myapp.phar'); $phar->extractTo('/path/to/extract');
Une fois le déballage terminé, vous pouvez modifier et déboguer le projet.
Résumé
Phar est une bibliothèque d'extensions PHP très pratique qui peut facilement regrouper l'intégralité du projet PHP dans un fichier exécutable et le chiffrer. Dans le développement réel d'un projet, Phar peut être utilisé pour simplifier le processus de déploiement et améliorer l'efficacité et la sécurité du fonctionnement du projet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!