« Memcached » : différence entre les versions
Aucun résumé des modifications |
|||
| (3 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 77 : | Ligne 77 : | ||
; apcu.enable=1 | ; apcu.enable=1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== ** Installer l’extension PHP Memcached via PECL** == | |||
Si tu veux la '''dernière version''' ou si ton système ne propose pas <code>php8.3-memcached</code> via APT, tu peux installer l’extension '''Memcached''' avec '''PECL''' : | |||
<syntaxhighlight lang="bash">sudo apt update | |||
sudo apt install php-pear php8.3-dev libmemcached-dev build-essential zlib1g-dev | |||
sudo pecl install memcached</syntaxhighlight> | |||
Pendant l’installation, PECL peut demander des options (compression, SASL). Tu peux laisser les valeurs par défaut si tu n’as pas besoin d’authentification. | |||
Ensuite, active l’extension dans PHP : | |||
<syntaxhighlight lang="bash">echo "extension=memcached.so" | sudo tee /etc/php/8.3/mods-available/memcached.ini | |||
sudo phpenmod memcached</syntaxhighlight> | |||
Redémarre PHP-FPM : | |||
<syntaxhighlight lang="bash">sudo systemctl restart php8.3-fpm</syntaxhighlight> | |||
Vérifie que l’extension est bien chargée : | |||
<syntaxhighlight lang="bash">php -m | grep memcached</syntaxhighlight> | |||
Tu dois voir <code>memcached</code>.<br /> | |||
Ou via <code>phpinfo()</code>, la section '''memcached support: enabled'''. | |||
----- | |||
=== '''Configurer MediaWiki avec PECL Memcached''' === | |||
Dans <code>LocalSettings.php</code>, utilise l’implémentation PECL : | |||
<syntaxhighlight lang="php"> | |||
$wgMainCacheType = CACHE_MEMCACHED; | |||
$wgParserCacheType = CACHE_MEMCACHED; | |||
$wgMessageCacheType = CACHE_MEMCACHED; | |||
$wgSessionCacheType = CACHE_MEMCACHED; | |||
$wgMemCachedServers = [ '127.0.0.1:11211' ];</syntaxhighlight> | |||
<blockquote>'''Pourquoi ?'''<br /> | |||
<code>memcached-pecl</code> utilise la classe native '''Memcached''' (C), plus rapide et avec support SASL, compression, etc. | |||
</blockquote> | |||
== Nettoyage == | |||
Commandes servant '''à “vider” complètement les caches et sessions en cours'''. Elles agissent sur deux systèmes différents : PHP et Memcached. | |||
----- | |||
==== 1️⃣ <code>sudo rm -f /var/lib/php/sessions/*</code> ==== | |||
* '''Objet''' : supprimer tous les fichiers de session PHP stockés sur disque. | |||
* PHP stocke parfois les sessions utilisateurs dans des fichiers sur le serveur (<code>/var/lib/php/sessions/</code> par défaut sur Ubuntu/Debian). | |||
* Quand tu fais : | |||
<syntaxhighlight lang="bash" copy>sudo rm -f /var/lib/php/sessions/*</syntaxhighlight> | |||
* Tu '''supprimes toutes les sessions en cours'''. | |||
* Conséquence : tous les utilisateurs connectés devront se reconnecter. | |||
* Utile pour repartir avec un état propre, par exemple après un problème de session ou après une migration. | |||
----- | |||
==== 2️⃣ <code>echo "flush_all" | nc 127.0.0.1 11211</code> ==== | |||
* '''Objet''' : vider '''toutes les données stockées dans Memcached'''. | |||
* <code>nc 127.0.0.1 11211</code> → se connecte au serveur Memcached local sur le port 11211. | |||
* <code>flush_all</code> → commande Memcached qui '''supprime toutes les clés en cache immédiatement'''. | |||
Concrètement : | |||
* Cache de pages MediaWiki (<code>parser cache</code>, <code>main cache</code>) | |||
* Cache des sessions si <code>$wgSessionCacheType = 'memcached-pecl'</code> | |||
* Tout ce qui est temporairement stocké pour accélérer les requêtes | |||
----- | |||
==== ⚠️ Important ==== | |||
* Après ces deux commandes, MediaWiki '''recalculera toutes les pages et sessions''' → certaines pages peuvent être lentes la première fois qu’on les charge (cache froid). | |||
* C’est utile '''pour résoudre des problèmes de session corrompue ou de cache invalide''', mais pas à faire régulièrement en production. | |||
----- | |||
En résumé : | |||
{| class="wikitable" | |||
|- | |||
! Commande | |||
! Cible | |||
! Effet | |||
! | |||
|- | |||
| <code>rm -f /var/lib/php/sessions/*</code> | |||
| Sessions PHP sur disque | |||
| Déconnecte tous les utilisateurs, supprime les sessions | |||
| | |||
|- | |||
| <code>echo "flush_all" | nc 127.0.0.1 11211</code> | |||
| Memcached | |||
| Vide tous les caches (pages, sessions, objets) | |||
| | |||
|} | |||
----- | |||
[[Catégorie:Linux]] [[category:php]] | [[Catégorie:Linux]] [[category:php]] | ||