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 | "128" | PHP_INI_SYSTEM | Antérieur à PHP 7.0.0 la valeur par défaut était "64" |
opcache.interned_strings_buffer | "8" | PHP_INI_SYSTEM | Antérieur à PHP 7.0.0 la valeur par défaut était "4" |
opcache.max_accelerated_files | "10000" | PHP_INI_SYSTEM | Antérieur à PHP 7.0.0 la valeur par défaut était "2000" |
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 | Supprimé en PHP 7.0.0. |
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM | Supprimé en PHP 7.2.0. |
opcache.enable_file_override | "0" | PHP_INI_SYSTEM | |
opcache.optimization_level | "0x7FFFBFFF" | PHP_INI_SYSTEM | Modifié depuis 0xFFFFFFFF en PHP 5.6.18 |
opcache.inherited_hack | "1" | PHP_INI_SYSTEM | Supprimé en PHP 7.3.0 |
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 | |
opcache.file_update_protection | "2" | PHP_INI_ALL | |
opcache.huge_code_pages | "0" | PHP_INI_SYSTEM | |
opcache.lockfile_path | "/tmp" | PHP_INI_SYSTEM | |
opcache.opt_debug_level | "0" | PHP_INI_SYSTEM | |
opcache.file_cache | NULL | PHP_INI_SYSTEM | Disponible à partir de PHP 7.0.0 |
opcache.file_cache_only | "0" | PHP_INI_SYSTEM | Disponible à partir de PHP 7.0.0 |
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM | Disponible à partir de PHP 7.0.0 |
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM | Windows uniquement. Disponible à partir de PHP 7.0.0 |
opcache.validate_permission | "0" | PHP_INI_SYSTEM | Disponible à partir de PHP 7.0.14 |
opcache.validate_root | "0" | PHP_INI_SYSTEM | Disponible à partir de PHP 7.0.14 |
opcache.preload | "" | PHP_INI_SYSTEM | Disponible à partir de PHP 7.4.0 |
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.
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 ou égal que la valeur configurée. La valeur minimale est 200. La valeur maximale est 100000 dans PHP < 5.5.6, et 1000000 dans les versions ultérieur.
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.
Cette directive a été supprimé dans PHP 7.2.0. Une variante de la séquence d'arrêt rapide a été intégré dans PHP et sera automatiquement utilisé si possible.
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 2 ou plus, un avertissement sera enregistrée dans le journal d'événements 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".
opcache.file_update_protection
string
Empêche la mise en cache des fichiers datant moins que ce nombre de secondes. Ceci protège de la mise en cache des fichiers incomplètement mis à jour. Si toutes les mises à jour de fichiers sur votre site sont atomiques, vous pouvez augmenter les performances en le définissant à "0".
opcache.huge_code_pages
string
Active ou désactive la copie de code PHP (segment de texte) dans des HUGE PAGES. Ceci devrait améliorer les performanes, mais nécessite une configuration approprié du système d'exploitation.
opcache.lockfile_path
string
Chemin absolue utilisé pour enregistrer les lockfiles partagés (pour *nix uniquement)
opcache.opt_debug_level
string
Produit un vidage opcode pour déboguer les différents étapes d'optimisation. 0x10000 affichera les opcodes tel que le compilateur les produit avant qu'aucune optimisation se produisent alors que 0x20000 affichera les codes optimisés.
opcache.file_cache
string
Active et définie le répertoire de cache de second niveau. Ceci devrait améliorer les performanes quand la mémoire SHM est pleine, au redémarage du serveur ou réinitialisation de SMH. La valeur par défaut "" désactive la mise en cache basée sur les fichiers.
opcache.file_cache_only
boolean
Active ou désactive la mise en cache de l'opcode dans la mémoire partagée.
opcache.file_cache_consistency_checks
boolean
Active ou désactive la validation de la somme de contrôle lorsque le script est chargé à partir du cache de fichiers.
opcache.file_cache_fallback
boolean
Insinue opcache.file_cache_only=1 pour un certain processus qui a échoué de se réattacher à la mémoire partagée (pour Windows uniquement). Le cache de fichiers activé explicitement est requis.
Désactiver cette option de configuration peut empêcher les processus de démarrer, Disabling this configuration option may prevent processes to start, et est donc découragé.
opcache.validate_permission
boolean
Valide les permissions des fichiers mises en cache par rapport à l'utilisateur actuel.
opcache.validate_root
boolean
Empêche la collision de noms dans les environnements `chroot`ées. Ceci devrait être activé dans tous les environnements `chroot`ées pour empêcher l'accès aux fichiers en-dehors du chroot.
opcache.preload
string
Spécifie un script PHP qui sera compilé et exécuté lors du démarrage du serveur, et qui peut précharger d'autres fichiers, soit grâce à include ou en utilisant la fonction opcache_compile_file(). Toutes les entités (par exemple functions et classes) définit dans ces fichiers seront disponible aux requêtes prêt à l'emploi, jusqu'à ce que le serveur soit éteint.