logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

Configuration d'APC. Mise en cache en PHP.

06/07/2025, by Ivan

!!! Attention !!! N'utilisez pas APC si vous avez PHP version 5.5 ou supérieure, OPCache remplace APC et est intégré dans PHP.

Le 21 mars 2013, la version bêta 1 de PHP 5.5 a été publiée incluant "Zend OPCache" - Il semble clairement que cela sera le remplacement d'APC à l'avenir puisqu'il est inclus dans le cœur de PHP et devra être maintenu pour chaque nouvelle version.

APC - cache alternatif pour PHP, enregistre le code opérationnel dans le cache PHP, ou comme les développeurs le décrivent : "APC est un système libre, ouvert et fiable pour la mise en cache et l'optimisation du code intermédiaire PHP".

PHP est un langage de haut niveau. Comme dans tous les langages de haut niveau, il peut être compilé sur différentes plateformes. Les systèmes de gestion de contenu, comme Drupal, sont constitués de centaines, voire de milliers de scripts PHP, et la nature modulaire de ces systèmes signifie qu'à chaque chargement de page, des centaines de ces scripts peuvent être utilisés. Contrairement aux langages de haut niveau, PHP est interprété à la volée, c’est-à-dire que le script est effectivement transformé en bytecode lors de l'exécution. C'est là qu'APC intervient : APC peut conserver une copie du script compilé en mémoire, prêt à être utilisé, ce qui réduit considérablement les ressources nécessaires pour Drupal. (Il convient de noter que dans certains langages, cela se fait automatiquement - par exemple, un script Python sur un serveur Apache est passé à l’interpréteur Python, tout en laissant une version compilée du script à proximité immédiate du script lui-même, que le serveur web utilise pour accéder ultérieurement)

Configurer APC est très simple. Il faut d'abord l'installer :

sudo apt-get install php-pear
sudo apt-get install php5-dev apache2-prefork-dev build-essential
sudo pecl install apc

Ensuite, vous devez copier le fichier apc.php, que j'ai joint au cours, sur le serveur, puis redémarrer Apache :

sudo /etc/init.d/apache2 restart

Vous pouvez maintenant ouvrir le fichier http://test/apc.php et consulter les statistiques d’APC.

Drupal APC

Vous obtiendrez à peu près ce type de statistiques. Comme vous pouvez le voir sur les graphiques, la situation n’est pas idéale. Un très grand nombre d’absences de fichiers dans le cache (MISS) et un faible nombre de fichiers présents dans le cache (HITS). La fragmentation des fichiers en mémoire APC est élevée. Tout cela indique une utilisation inefficace d’APC. Pourquoi cela arrive :

Manque de mémoire : si vous avez 8 Mo pour APC, mais que la taille des scripts chargés est de 12 Mo, alors 8 Mo ne suffiront pas pour ces fichiers, ce qui génère de nouveaux MISS.

Fragmentation : il se peut que la mémoire allouée à APC soit de 32 Mo, mais que les fichiers totalisent 40 Mo. Mais tous les fichiers ne sont pas toujours utilisés. Par exemple, un module peut être chargé occasionnellement et peu utilisé. Il peut arriver que, à cause des réglages d’APC, ces fichiers restent dans le cache inutilisés alors que les fichiers actifs ont besoin d’être mis en cache. Les fichiers ne sont pas toujours écrits dans le cache en blocs contigus ; si un fichier est volumineux, il doit être divisé en deux parties, ce qui crée des espaces vides en mémoire.

Mais d’abord, examinons les champs de configuration d’APC. Le fichier de configuration d’APC sous Debian/Ubuntu se trouve dans /etc/php5/conf.d/apc.ini :

apc.enabled=1

APC est activé. C’est un réglage assez évident, mais très important. Désactiver APC peut entraîner une baisse de performance sur un serveur en production.

apc.shm_segments=1
apc.shm_size=32

Ces paramètres indiquent la quantité de mémoire allouée à APC. apc.shm_segments=1 signifie qu’un seul segment mémoire est alloué, et apc.shm_size=32 indique que la taille de ce segment est de 32 mégaoctets. Vous pouvez changer la taille du segment, par exemple à 64 Mo, puis redémarrer Apache. Ensuite, si le nombre de MISS ne tombe pas à 1%, passez à 128 Mo, etc. Il me semble que c’est le paramètre principal pour travailler avec APC.

apc.cache_by_default=1

;apc.filters=

APC fonctionne pour tous les scripts PHP. Vous pouvez commenter la ligne apc.filters.

apc.cache_by_default=0
apc.filters="+drupal6"

Ainsi, vous pouvez limiter l’utilisation d’APC uniquement aux fichiers Drupal 6. Ceci est utile si vous ne voulez pas perdre le cache à chaque fois que vous utilisez PhpMyAdmin sur le serveur.

apc.stat=1

Ce paramètre influence directement la performance. Si activé, le cache APC reste en place jusqu’à ce qu’il soit supprimé manuellement. Si désactivé, APC compare le temps d’exécution du script et le temps de dernière modification du fichier, et met en cache une nouvelle version. Ce paramètre est nécessaire pour un serveur en production, mais il est préférable de le désactiver pendant le développement. De plus, avec apc.stat activé, il faut vider le cache APC lors de la mise à jour des modules et du noyau Drupal.

apc.ttl=0

Ce réglage indique après combien de millisecondes vider le cache. À 0, le cache n’est pas vidé. Nous mettons donc 0 car nous ne voulons pas que le cache nécessaire soit vidé toutes les heures (par défaut 7200, soit 2 heures).

apc.rfc1867=1

Ce paramètre peut être activé pour Drupal si vous souhaitez afficher le statut du téléchargement de fichiers via APC.

apc.num_files_hint=2048

Ce paramètre peut être très utile quand plusieurs sites, plusieurs Drupal, sont hébergés sur le même serveur. Un seul Drupal peut mettre plus de 500 fichiers en cache. Pour éviter que le cache d’un site n’écrase les fichiers d’un autre, il est préférable d’augmenter ce paramètre (par défaut 1024).

Après modification des paramètres, n’oubliez pas de redémarrer le serveur. Vous devriez obtenir des graphiques comme ceux-ci :

Drupal APC

Notez que le nombre de MISS doit être proche de zéro, et la fragmentation à 0 %.