WRInaute passionné
voila, j'ouvre ce nouveau fil pour plusieurs raison:
- suite à une discussion animée d'hier soir sur le forum Webrankinfo ou il était question de partage de connaissances, de pédagogie, d'aciens et de nouveaux wrinautes (j'espère quen tant que nouveau, j'apprendrais quelque chose aux anciens pour pas qu'ils se barrent! :wink: )
- parce que 'j'ai vu plusieurs fils ou les webmasters s'interrogent sur le passage du mutualiser au dédié (l'astuce que je donne ici permet de soulager énormément le serveur)
Si le truc que je vous communique est déjà archi connu, vous avez le droit de m'insulter!
Voila, sur tous mes sites et ceux de mes clients, j'utilise une mise en cache des pages PHP sous forme de page HTML (non, ce n'est pas pareil que générer un site en HTML statique à partir d'un site dynamique!).
Je vous donne le code plus bas. :idea:
Pourquois procéder de la sorte? tout simplement pour limiter le nombre de requetes mysql (grosses consommatrices de ressources CPU). Pour ceux qui ont du mal à comprendre, cela permet d'eviter le 'too many connection'. Bon si vous êtes sur un mutualisé, ça ne peut être efficace que si tout le monde fait de même. Par contre, sur mes serveurs dédiés, à serveur et traffic équivalent, je double le nombre de sites hébergés!
Que fait ce script:
1/ il recupere l'url de la page
2/ transforme cet url en un nom de fichier sans /
3/ teste l'existance de ce fichier dans le répertoire /cache/
4/ si le fichier n'existe pas, génére la page, puis la stoque dans le repertoire cache
/5 si le fichier existe, l'ouvre en tant que page html
La page html est générée lors de la premiere requete. Avce ce système, il faut gerer le cache lors des mises à jour (effacer la page du cache correspondante).
Je gere un site de + de 80 000 pages avec ce système sans problème notoire!
Voila!
si vous êtes sages et que ce fil a du succé, je vous filerez une autre astuce de temps en temps.
- suite à une discussion animée d'hier soir sur le forum Webrankinfo ou il était question de partage de connaissances, de pédagogie, d'aciens et de nouveaux wrinautes (j'espère quen tant que nouveau, j'apprendrais quelque chose aux anciens pour pas qu'ils se barrent! :wink: )
- parce que 'j'ai vu plusieurs fils ou les webmasters s'interrogent sur le passage du mutualiser au dédié (l'astuce que je donne ici permet de soulager énormément le serveur)
Si le truc que je vous communique est déjà archi connu, vous avez le droit de m'insulter!
Voila, sur tous mes sites et ceux de mes clients, j'utilise une mise en cache des pages PHP sous forme de page HTML (non, ce n'est pas pareil que générer un site en HTML statique à partir d'un site dynamique!).
Je vous donne le code plus bas. :idea:
Pourquois procéder de la sorte? tout simplement pour limiter le nombre de requetes mysql (grosses consommatrices de ressources CPU). Pour ceux qui ont du mal à comprendre, cela permet d'eviter le 'too many connection'. Bon si vous êtes sur un mutualisé, ça ne peut être efficace que si tout le monde fait de même. Par contre, sur mes serveurs dédiés, à serveur et traffic équivalent, je double le nombre de sites hébergés!
Code:
[i]ici code php que vous ne voulez pas mettre en cache[/i]
<?PHP
$urldemandee=$_SERVER['REQUEST_URI']; //on lit l'adresse de la page
$urldemandee=ereg_replace('/','-',$urldemandee); // on tranforme l'adresse en nom de fichier
if($urldemandee=="-") $urldemandee="-index.html"; // si l'adresse est la racine du site, on ajoute index.html
$fichierCache="cache/cache".$urldemandee; // on construit le chemin du fichier cache de la page
if (@filemtime($fichierCache)<time()-(3600*24*360)) { //si la page n'existe pas dans le cache ou si elle a expiré
ob_start(); // on démarre la bufferisation de la page: rien de ce qui suit n'est envoyé au navigateur
?>
[i]Votre page PHP ici[/i]
<?php
$contenuCache = ob_get_contents(); // on recuperre le contenu du buffer
ob_end_flush();// on termine la bufferisation
$fd = fopen("$fichierCache", "w"); // on ouvre le fichier cache
if ($fd) {
fwrite($fd,$contenuCache); // on ecrit le contenu du buffer dans le fichier cache
fclose($fd);
}
} else { // le fichier cache existe déjà
include ($fichierCache); // on le copie ici
}
?>
Que fait ce script:
1/ il recupere l'url de la page
2/ transforme cet url en un nom de fichier sans /
3/ teste l'existance de ce fichier dans le répertoire /cache/
4/ si le fichier n'existe pas, génére la page, puis la stoque dans le repertoire cache
/5 si le fichier existe, l'ouvre en tant que page html
La page html est générée lors de la premiere requete. Avce ce système, il faut gerer le cache lors des mises à jour (effacer la page du cache correspondante).
Je gere un site de + de 80 000 pages avec ce système sans problème notoire!
Voila!
si vous êtes sages et que ce fil a du succé, je vous filerez une autre astuce de temps en temps.
Code: