Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Défaut | Modifiable | Historique |
---|---|---|---|
opcache.enable | "1" | PHP_INI_ALL | |
opcache.enable_cli | "0" | PHP_INI_SYSTEM | |
opcache.memory_consumption | "64" | PHP_INI_SYSTEM | |
opcache.interned_strings_buffer | "4" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0. |
opcache.max_accelerated_files | "2000" | PHP_INI_SYSTEM | |
opcache.max_wasted_percentage | "5" | PHP_INI_SYSTEM | |
opcache.use_cwd | "1" | PHP_INI_SYSTEM | |
opcache.validate_timestamps | "1" | PHP_INI_ALL | |
opcache.revalidate_freq | "2" | PHP_INI_ALL | |
opcache.revalidate_path | "0" | PHP_INI_ALL | |
opcache.save_comments | "1" | PHP_INI_SYSTEM | |
opcache.load_comments | "1" | PHP_INI_ALL | |
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM | |
opcache.enable_file_override | "0" | PHP_INI_SYSTEM | |
opcache.optimization_level | "0xffffffff" | PHP_INI_SYSTEM | |
opcache.inherited_hack | "1" | PHP_INI_SYSTEM | |
opcache.dups_fix | "0" | PHP_INI_ALL | |
opcache.blacklist_filename | "" | PHP_INI_SYSTEM | |
opcache.max_file_size | "0" | PHP_INI_SYSTEM | |
opcache.consistency_checks | "0" | PHP_INI_ALL | |
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM | |
opcache.error_log | "" | PHP_INI_SYSTEM | |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM | |
opcache.preferred_memory_model | "" | PHP_INI_SYSTEM | |
opcache.protect_memory | "0" | PHP_INI_SYSTEM | |
opcache.mmap_base | NULL |
PHP_INI_SYSTEM | |
opcache.restrict_api | "" | PHP_INI_SYSTEM |
Voici un éclaircissement sur l'utilisation des directives de configuration.
opcache.enable
boolean
Active le cache d'opcode. Lorsqu'il est désactivé, le code n'est ni optimisé, ni mis en cache. Le paramétrage de opcache.enable ne peut être activé pendant l'exécution via la fonction ini_set(), il ne peut être que désactivé. Tenter de l'activer dans un script va générer une alerte.
opcache.enable_cli
boolean
Active le cache d'opcode pour la version CLI de PHP. Cela est vraiment utile pour les tests et le debugging.
opcache.memory_consumption
integer
La taille de la mémoire partagée utilisée par OPcache, en megabytes.
opcache.interned_strings_buffer
integer
La quantité de mémoire utilisée pour stocher des chaînes internes, en megabytes. Cette directive de configuration est ignorée dans PHP < 5.3.0.
opcache.max_accelerated_files
integer
Le nombre maximal de clés (et donc, de scripts) dans la table de hashage d'OPcache. La valeur actuellement utilisée sera le premier nombre du jeux des nombres premiers { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } qui est plus grand que la valeur configurée. Seuls les nombres compris entre 200 et 100000 sont autorisés.
opcache.max_wasted_percentage
integer
Le pourcentage maximum de mémoire gaspillée autorisée avant qu'un redémarrage ne soit programmé.
opcache.use_cwd
boolean
Si activé, OPcache ajoute le dossier de travail courant à la clé du script, éliminant ainsi les collisions possibles entre les fichiers dont le nom de base est identique. Le fait de désactiver cette fonctionalité améliore les performances, mais peut casser les applications existantes.
opcache.validate_timestamps
boolean
Si activé, OPcache va vérifier les mises à jour des scripts toutes les opcache.revalidate_freq secondes. Lorsque cette directive est désactivée, vous devez réinitialiser OPcache manuellement via la fonction opcache_reset(), la fonction opcache_invalidate() ou en redémarrant le serveur Web pour que les modifications du système de fichiers ne prennent effet.
opcache.revalidate_freq
integer
La fréquence de vérification du timestamps du script afin de détecter les possibles mises à jour, en secondes. La valeur 0 fera qu'OPcache vérifira les mises à jour à chaque requête.
Cette directive de configuration est ignorée si opcache.validate_timestamps est désactivé.
opcache.revalidate_path
boolean
Si désactivé, les fichiers en cache existant utilisant le même include_path seront réutilisés. Aussi, si un fichier avec le même nom est quelque part ailleurs dans le include_path, il ne sera pas trouvé.
opcache.save_comments
boolean
Si désactivé, tous les commentaires de documentation seront supprimés du cache opcode afin de réduire la taille du code optimisé. La désactivation de cette directive peut casser des applications et des frameworks qui s'appuient sur l'analyse des commentaires pour les annotations, comme Doctrine, Zend Framework 2 et PHPUnit.
opcache.load_comments
boolean
Si désactivé, les commentaires de documentation ne seront pas chargés depuis le cache opcode, y compris s'ils existent. Cette directive peut être utilisée avec opcache.save_comments pour ne charger les commentaires que pour les applications qui les demandent.
opcache.fast_shutdown
boolean
Si activé, une séquence d'arrêt rapide sera utilisé, qui ne libère pas chaque bloc alloué, mais s'appuie sur le gestionnaire de mémoire Zend Engine pour désallouer le jeux entier des variables de requêtes, en masse.
opcache.enable_file_override
boolean
Lorsqu'activé, le cache opcode sera vérifié pour savoir si un fichier a déjà été mise en cache lorsque les fonctions file_exists(), is_file() et is_readable() sont appelées. Ceci peut accroître les performances des applications qui vérifient l'existence et la lisibilité des scripts PHP, mais risque de retourner des données périmées si opcache.validate_timestamps est désactivé.
opcache.optimization_level
integer
Un masque de bits qui contrôle l'optimisation passée à exécuter.
opcache.inherited_hack
boolean
En PHP < 5.3, OPcache stocke les endroits où les opcodes DECLARE_CLASS utilisent l'héritage ; lorsqu'un fichier est chargé, OPcache tente de lier les classes héritées en utilisant l'environnement courant. Le problème est que, malgré le fait que l'opcode DECLARE_CLASS peut ne pas être nécessaire pour le script courant, si le script requiert que l'opcode doit être défini, il peut ne pas s'exécuter.
Cette directive de configuration est ignorée en PHP 5.3 et suivant.
opcache.dups_fix
boolean
Ce hack ne doit être activé que comme solution de contournement des erreurs "Cannot redeclare class".
opcache.blacklist_filename
string
L'endroit de stockage du fichier gérant la liste noire OPcache. Un fichier de liste noire est un fichier texte contenant des noms de fichiers qui ne doivent pas être accélérés ; un par ligne. Les jokers sont autorisés, et les préfixes peuvent également être fournis. Les lignes commençant par un point-virgule sont vues comme des commentaires et seront donc ignorées.
Un fichier de liste noire simple ressemble à ceci :
; Correspond à un fichier spécifique. /var/www/broken.php ; Un préfixe qui correspond à tous les fichiers qui commencent par x. /var/www/x ; Une correspondance avec un joker. /var/www/*-broken.php
opcache.max_file_size
integer
La taille maximale du fichier pouvant être mis en cache, en octets. Si vaut 0, tous les fichiers pourront être mise en cache.
opcache.consistency_checks
integer
Si vaut différent de zéro, OPcache va vérifier la somme de contrôle du cache toutes les N requêtes, où N est la valeur de cette directive de configuration. Ceci ne doit être activé que lors du débogage, sachant qu'il impacte fortement les performances.
opcache.force_restart_timeout
integer
La durée à attendre pour le début d'un redémarrage programmé, si le cache n'est pas activé, en seconde. Si ce délait d'attente est atteint, alors OPcache imagine que quelque chose se passe mal, et va tuer les processus gérant les verrous sur le cache pour permettre un redémarrage.
Si opcache.log_verbosity_level vaut 3 ou plus, une erreur sera enregistrée dans le log des erreurs lorsque ce comportement survient.
opcache.error_log
string
Le log d'erreurs pour les erreurs OPcache. Une chaîne vide sera vu comme stderr, et les erreurs seront envoyées vers la sortie d'erreurs standart (qui sera le log des erreurs du serveur Web dans la plupart des cas).
opcache.log_verbosity_level
integer
Le niveau de verbosité des logs. Par défaut, seules les erreurs fatales niveau 0) et les erreurs (niveau 1) seront enregistrées. Les autres niveaux disponibles sont les alertes (niveau 2), les messages d'information (niveau 3), et les messages de débogage (niveau 4).
opcache.preferred_memory_model
string
Le modèle de mémoire préféré pour OPcache, à utiliser. Si laissé vide, OPcache va choisir le modèle le plus approprié, ce qui est la meilleure façon de faire dans la plupart des cas.
Les valeurs possibles sont mmap, shm, posix et win32.
opcache.protect_memory
boolean
Protège la mémoire partagée des écritures non-approuvées pendant l'exécution des scripts. Ceci est utile uniquement pour du débogage interne.
opcache.mmap_base
string
La base utilisée pour les segments de mémoire partagée sous Windows. Tous les processus PHP doivent lier la mémoire partagée dans le même espace d'adresse. L'utilisation de cette directive permet de corriger les erreurs "Unable to reattach to base address".
opcache.restrict_api
string
Autorise l'appel aux fonctions de l'API d'OPcache uniquement depuis des scripts PHP dont le chemin commence par une chaîne spécifique. La valeur par défaut, "", signifie "aucune restriction".