Home
Accueil
Downloads
Téléchargements
Forums
Forums
Your Account
Votre compte
Menu
· Accueil ·

· Communication ·
  · Forums
  · Messages privés
  · Contactez nous
  · Recommendez nous
  · Sondages
  · Les projets

· Nouvelles ·Stats
  · Sujets
  · Ecrire un article
  · Articles archivés
  · Articles RSS
  · Lettre de sécurité
  · Archive de lettres

· Téléchargements ·
  · Accueil
  · Nouveautés
  · Mises à jour
  · Thêmes

· Outils ·
  · Outils divers
  · Convertisseur de temps
  · Table de caractères
  · Générateur de boutons
  · Compresseur Javascript

· Documentation ·
  · Wiki
  · Questions/Réponses
  · Documents
  · Manuel PHP-Nuke
  · Manuel PHP
  · Manuel PEAR
  · Encyclopédies

· Liens ·
  · Nos liens
  · Nos fluxs RSS
  · Partenaires
  · Votre publicité
  · Sitemap
  · Mes bannières

· Infos ·
  · Rechercher
  · Votre compte
  · Liste des membres
  · Carte des membres
  · Top

· Divers ·
  · Météo
  · Galeries
  · Statistiques Phpnuke
  · MS Analysis


Pages qui pointent vers celle-ci
Sommaire Wiki -:- Sommaire tutoriaux -:- Personnalisations
Personnalisations : Blocs : Mise en cache

1 - Sommaire
Mis à jour le : 08 mai 2006 à 20h54

Il peut être utile, si votre site comporte beaucoup de blocs gourmands en ressource, de mettre ces derniers en cache. En quoi cela consiste-t'il ? Pour faire simple, à mettre sous forme de fichiers le résultat des requêtes sql. Cette mise en cache soulage donc fortement les temps CPU du serveur. Utile si votre serveur d'hébergement est un peu "faiblard" et/ou si votre site reçoit énormément de visiteurs.

2 - Les requis
Afin d'effectuer cette opération, il vous faut au préalable charger Cache_Lite et si votre serveur ne l'a pas PEAR.
Dans ces deux packages, seuls deux fichiers nous intéresseront, "Lite.php" et "PEAR.php".

3 - Installation ''PEAR.php''
- Décompactez le package téléchargé.
- Trouvez "PEAR.php" et uploadez le à la racine de votre serveur (au même endroit que le "mainfile.php").

Passez à l'étape suivant

4 - Installation ''Lite.php''
- Décompactez le package téléchargé.
- Créez sur votre serveur un répertoire qui contiendra les fichiers temporaires du cache. Par exemple : "tmp/cache".
ATTENTION : ce répertoire doit être en CHMOD 777.
- Créez dans le répertoire "includes" de votre site un répertoire nommé "Cache_Lite". Ce qui vous donnera "includes/Cache_Lite".
- Trouvez le fichier "Lite.php" et éditez le
- Trouvez la ligne contenant ce code :
Code:
var $_cacheDir = '/tmp/';

- Remplacez "/tmp/" par le chemin du répertoire du cache que vous avez créé.
ATTENTION le chemin doit être le relatif, donc sous forme :
Code:
/var/www/free.fr/0/d/exemple/tmp/cache/

si vous êtes chez Free ou encore :
Code:
/home/exemple/domains/exemple.com/public_html/tmp/cache/

chez un hébergeur traditionnel.
- Enregistrez le fichier et uploadez le dans le répertoire créé un peu plus haut "includes/Cache_Lite".

Passez à l'étape suivante.

5 - Installation dans un bloc
En premier lieu, il faut savoir que tous les blocs n'acceptent pas forcément Cache_Lite. Pour savoir, il suffit de tester ce qui est sans risque. Dans cet exemple nous allons prendre "block-Old_Articles.php" mais sera transposable dans la très grande majorité des blocs de phpnuke.
- Editez le bloc
- Trouvez le code :
Code:
if(!defined('BLOCK_FILE')) { die("Illegal File Access Detected!!"); }

ou
Code:
if (eregi("block-Old_Articles.php", $_SERVER['SCRIPT_NAME'])) {
    Header("Location: index.html");
    die("You cannot access this file directly...");
}

en fonction de votre version de phpnuke. Ajoutez juste après le code suivant :
Code:
// Ajout de Cache-Lite
require_once("includes/Cache_Lite/Lite.php");
$options = array(
// Définissez le chemin relatif de votre répertoire de cache
  "cacheDir" => "/home/exemple/domains/exemple.com/public_html/tmp/cache/ ",
// Définissez la durée du cache en seconde
  "lifeTime" => 3600
);
$objCache = new Cache_Lite($options);
$fileid = basename($blockfile,".php");
if ($content = $objCache->get($fileid)) {
// Ajoute un message pour signaler le cache
  $content .= "n[en cache avec  ID=$fileid]";
}
else
{
// fin premiere partie, se rendre à la fin du fichier

Pensez à modifier le chemin du répertoire du cache ainsi, qu'éventuellement, sa durée
- Allez à la fin du fichier du block et juste avant :
Code:
?>

et ajoutez, juste avant, ce code :
Code:
// ...suite de l'ajout du cache
  $objCache->save($content, $fileid);
}
// fin de l'ajout du cache


Au final, le code complet devrait ressembler à ceci :
Code:
<?php
if(!defined('BLOCK_FILE')) { die("Illegal File Access Detected!!"); }
// Ajout de Cache-Lite
require_once("includes/Cache_Lite/Lite.php");
$options = array(
// Définissez le chemin relatif de votre répertoire de cache
  "cacheDir" => "/home/exemple/domains/exemple.com/public_html/tmp/cache/ ",
// Définissez la durée du cache en seconde
  "lifeTime" => 3600
);
$objCache = new Cache_Lite($options);
$fileid = basename($blockfile,".php");
if ($content = $objCache->get($fileid)) {
// Ajoute un message pour signaler le cache
  $content .= "n[en cache avec ID=$fileid]";
}
else
{
// fin premiere partie, se rendre à la fin du fichier
#####################################################
                    LE CODE DU BLOCK
#####################################################
// ...suite de l'ajout du cache
  $objCache->save($content, $fileid);
}
// fin de l'ajout du cache
?>

- Enregistrez le fichier et uploadez le sur votre serveur.

Pour vérifier le bon fonctionnement du cache, il suffit à l'aide de votre programme Ftp, de vous rendre dans le répertoire du cache et de vérifier s'il y a un fichier du type : "cache_c2*****************************************". Si tel est le cas, l'installation de Cache_Lite est réussi.
A noter qu'il doit y avoir autant de fichiers que de blocs cachés.

6 - Conseils
En ce qui concerne la durée du cache, adaptez là en fonction du bloc. Avec un bloc dont le contenu varie très peu (Old_Archive), vous pouvez mettre une valeur de "3600" voire plus. Par contre, avec un bloc du style "info-user" ou "forum" préférez un valeur de "30".
Faites plusieurs tests et adoptez la valeur la mieux adaptée à votre site.

7 - Sécurité
Le répertoire destiné à recevoir le cache étant en CHMOD 777 il est primordial de placer un fichier .htaccess avec ce code à l'intérieur :
Code:
deny from all

Ce dernier ne gènera en rien au fonctionnement de cache lite.

 Publié le : 2007-07-27 par stefvar, dernière modification le : 2007-07-27 par stefvar(78 lectures)


Copyleft © par Stefvar. L'utilisation totale ou partielle de cette source est totalement interdite sans autorisation écrite de ma part.

Syndiquez notre contenu RSS, Atom, etc..
PHP-Nuke © 2007Reproduction interdite sans autorisation de ma part www.stefvar.com Copyright © 2008Thème iCGstation
Site français de la communauté PragmaMx