Configuration à l'exécution
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 | 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.
-
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.
Version en cache
14/11/2024 21:57:09 Cette version de la page est en cache (à la date du 14/11/2024 21:57:09) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-opcache.configuration.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.