PHP 8.3.4 Released!

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour le système de fichiers
Nom Défaut Modifiable Historique
phar.readonly "1" INI_ALL  
phar.require_hash "1" INI_ALL  
phar.cache_list "" INI_SYSTEM  

Voici un éclaircissement sur l'utilisation des directives de configuration.

phar.readonly bool

Cette option désactive la création ou la modification des archives Phar en utilisant le flux phar ou le support en écriture sur les objets Phar. Ce paramètre devrait toujours être activé sur des machines de production, car le support en écriture sur les archives phar pourrait mener à la création de virus basés sur PHP en cas d'utilisation conjuguée avec des vulnérabilités communes.

Note:

Ce paramètre ne peut être désactivé que dans php.ini pour des raisons de sécurité. Si phar.readonly est désactivé dans php.ini, l'utilisateur peut activer phar.readonly dans un script ou le désactiver plus tard. Si phar.readonly est activé dans php.ini, un script pourrait "réactiver" sans danger la variable INI, mais ne pourrait pas la désactiver.

phar.require_hash bool

Cette option forcera toutes les archives Phar ouvertes à contenir un type de signature (à ce jour MD5, SHA1, SHA256, SHA512 et OpenSSL sont supportés), et toute archive Phar ne contenant pas de signature sera rejetée.

Note:

Ce paramètre ne peut être désactivé que dans php.ini. Si phar.require_hash est désactivé dans php.ini, l'utilisateur peut activer phar.require_hash dans un script ou le désactiver plus tard. Si phar.require_hash est activé dans php.ini, un script pourrait "réactiver" sans danger la variable INI, mais ne pourrait pas la désactiver.

Ce paramètre n'affecte pas la lecture des fichiers tar avec la classe PharData.

Attention

phar.require_hash ne fournis pas de sécurité en soi, c'est uniquement une mesure contre exécuter accidentellement des archives Phar corrompu, car n'importe qui peut trafiquer avec le Phar peut facilement corriger la signature après.

phar.cache_list string

Permet aux correspondances d'archives phar d'être traitées au démarrage du serveur web, augmentant de ce fait les performance d'accès aux fichiers contenus dans une archive phar et les rendant très proche d'un accès à des fichiers d'une installation classique sur disque.

Exemple #1 Exemple d'utilisation de phar.cache_list

dans php.ini (windows):
phar.cache_list =C:\chemin\vers\phar1.phar;C:\chemin\vers\phar2.phar
dans php.ini (unix):
phar.cache_list =/chemin/vers/phar1.phar:/chemin/vers/phar2.phar

add a note

User Contributed Notes 1 note

up
-13
milagre at gmail dot com
12 years ago
During experimentation with phar.cache_list using php 5.2.13 and pecl/phar 2.0.0, I found some interesting details.

It seems that if any phar in the list of phars to cache fails to be read properly during module initialization, none of the phars in the list will be cached, including ones that had already been successfully read before the failure.

Additionally, phars without metadata will always fail to be pre-cached properly due to what seems to be a bug in the phar module that re-reads the length of the metadata from the next byte if the metadata length is 0. Adding any metadata resolved the problem for me.

So make sure you are pre-caching phars with metadata, and make sure you don't put a bad path/file in the list.
To Top