Comment installer et utiliser Memcache sur Ubuntu 12.04

Memcache est un système pour accélérer les serveurs en mettant en cache les informations. Le programme vous permet d’affecter un montant spécifique de la RAM du serveur vers la mise en cache récemment données interrogées pendant un certain laps de temps. Une fois les données sont demandées à nouveau, memcache accélère le processus de récupération en affichant les informations mises en cache au lieu de générer le résultat de la base de données.

Installation

sudo apt-get install mysql-server php5-mysql php5 php5-memcache --yes;
sudo apt-get install php-pear --yes;
sudo apt-get install build-essential;
sudo pecl install memcache;
echo "extension=memcache.so" | sudo tee /etc/php5/conf.d/memcache.ini;
service apache2 restart;
## inutile car deja dans memcache.ini echo “extension=memcache.so” > /etc/php5/apache2/php.ini;
Publicités

Purger la cache mémoire RAM d’un Serveur linux.

Dans certains cas il peut être utile de vider la cache en mémoire RAM de votre serveur Linux, ça peut libérer jusqu’à 70% de mémoire Vive.

Pour forcer le noyau à abandonner la page de cache, inode dentry caches sans redémarrage.

Il s’agit d’une opération non-destructive. Dirty objets ne sont pas freeable, par conséquent, vous devez exécuter la synchronisation vers le disque dur au préalable. Pour cela il faut d’abord être sur que toutes les écritures disques en caches soit écritent, avec la commande SYNC

si vous utilisez Ubuntu dans un terminal tapez :

sudo su

Ecriture de la cache disque,  dans un terminal tapez :

sync

Puis on vas purger la pagecache de la  mémoire RAM dans un terminal tapez :

echo "1" > /proc/sys/vm/drop_caches

Puis on vas purger dentries libre et les inodes de la  mémoire RAM dans un terminal tapez :

echo "2" > /proc/sys/vm/drop_caches

Ou on peut aussi puger les deux en même temps :  dans un terminal tapez :

echo "3" > /proc/sys/vm/drop_caches

Enfin remettre drop_caches par default

echo "0" > /proc/sys/vm/drop_caches 

Dernier Etape : Redemarrer les services Mysql et apache2 afin qu’il recréer leurs caches.

service apache2 restart
service mysql restart

Mise en garde: Toutes ces commandes fonctionnent uniquement en mode root

___________________________________________________________

Voici un script pour Purger la Cache Ram du Serveur

J’ai fait un tutoriel sur  le Script :

Avec un éditeur tapez :

#!/bin/bash
#!/bin/sh # La première ligne sert à spécifier quel shell tu veux excéuter. ici sh 

# Notice : pour executer un script il faut
# 1) changer ses droits pour devenir executable:  chmod 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

##################################################
### Script de purge du cache de la mémoire RAM ###
##################################################

echo "sync : Ecrit la cache disque en cours"
sync
echo "ok"
echo "Vidage du cache de la memoire RAM niveau 3"
echo "3" > /proc/sys/vm/drop_caches
echo "Pause de 1 seconde"
sleep 1
echo "sync : re-ecrit la cache disque en cours (+ par sécurité, pas indispensable)"
sync
echo "action cache remis par defaut"
echo "0" > /proc/sys/vm/drop_caches
echo "Vidage du cache terminée."
echo "redemarre les services mysql pour recréer la cache c'est conseillé"
service mysql restart
echo "redemarre les services apache2 pour recréer la cache c'est conseillé"
service apache2 --full-restart
echo "******* Terminée ********"

Enregistrez-le sous le nom : PurgeRam.sh

Donnez les droits a l’execution du script dans un terminal

chmod 777 PurgeRam.sh

vous pouvez l’exécuter ou l’ajouter aux tâches planifiées.

__________________________________________________

Créer une tâche Planifiée vers 4H50 du matin

  • Démarrez Tâche Planifiées > Applications > Outils système > Tâches Planifiées
  • Cliquez sur Nouveau
  • Cliquez sur Une tâche lancée régulièrement
  • Saisissez une Description “Ma sauvegarde”
  • Commande : Précisez votre Script ou la ligne de commande :  ./Chemin/du/scrip/PurgeRam.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 4H50 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    50 4 * * * ./chemin/PurgeRam.sh

Vous pouvez Cliquez sur  Lance la tache Sélectionner + “Exécuter” pour tester la tache.

___________________________________________________________________

Ou  avec crontab  (Planificateur de tâche en ligne de commande )

(sans gnome-schedule), tapez :
crontab -e
insérez : 50 4 * * * ./chemin/PurgeRam.sh

Explication des instructions crontab sur wikipedia

 j’ai fait un tutoriel sur les taches Planifiées ici

Supprimer Vider la cache /VotreMagento/var/cache

Après certaines modifications dans magento, changer de dossier, de nom de base etc.. il est indispensable de vider la cache ! Sans cela votre site va garder les anciens paramètre en mémoire.

Plusieurs solutions selon les cas :

  • supprimer avec fileZilla en n’oubliant pas de cochez Afficher les fichiers cachés du serveurs sans cela il va vous manquer des fichier. (Solution Lente)
  • Utilisez magento-cleanup.hph

A télécharger ici : http://www.magentocommerce.com/wiki/_media/groups/227/magento-cleanup2.zip

Dans le dossier de votre magento, puis exécutez le depuis un Navigateur http://www.VotreSite.xx/votredossierMagento/magento-cleanup.php

  • En Ligne de Commande dans un terminal ou avec putty.exe (solution Ultra Rapide) avec la commande« rm – r  » Attention ne vous trompez pas vous pourriez tous supprimer sur votre serveur !

rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/cache
rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/session

Ou bien: (c’est pareil)

cd var/www/vhosts/VotreSiteInternet/httpdocs
rm -r -f VotreMagento/var/cache
rm -r -f VotreMagento/var/session

Ou bien :

  • Si votre serveur est accessible avec FreeNx
  • Sélectionnez  dans le dossier magento/var/cache et /session
  • Supprimez-les

 

_______________________________________________________

voir aussi le tutoriel pour : Script pour garder en pleine forme Magento.

 

Déplacer – Copier Magento vers un autre Domaine ou Dossier

Pour Copier Votre Magento Il faut :

  1. Copier le dossier qui contient votre Magento
  2. Mettre les droit au nouveau dossier (777 / 755)
  3. Supprimer la cache /VotreMagento/var/cache
  4. Copier la base de donner
  5. Editer core_config_Data
  6. Editer .htaccess
  7. Editer /VotreMagento/app/etc/local.xml

1. Copier le dossier qui contient votre Magento

Plusieurs solutions selon les cas :

  • Copier avec fileZilla en n’oubliant pas de cochez Afficher les fichiers cachés du serveurs sans cela il va vous manquer des fichier. (Solution Lente)
  • En Ligne de Commande dans un terminal ou avec putty.exe (solution Ultra Rapide) avec la commande« cp – r Magento CopieMagento »
    cp -r /var/www/vhosts/votreSiteinternet/httpdocs/Magento  /var/www/vhost/votreSite/httpdocs/CopieDeMagento

ou bien: (c’est pareil)

cd var/www/vhosts/VotreSiteInternet/httpdocs
cp -r magento CopieDeMagento
  • En interface Graphique Copier/Collez :  si votre serveur est accessible avec FreeNx 

2. Mettre les droits au nouveau dossier Magento (777 / 755)

Plusieurs solutions selon les cas :

  • Avec filezilla c’est très long : Bouton droit de la souris sur votre dossier Magento et cochez : « Droit d’accès au fichier » > entrez 755 ou 777 et cocher « Recursion dans les sous dossiers, Appliquer à tous les sous-dossiers  et fichiers
  • Soluttion Ultra rapide ±2 secondes ! En ligne de commande dans un Terminal via interface FreeNx ou putty.exe, tapez : Chmod -R -777 /LeCheminDeVotreDossierMagmento  -Attention ne vous trompez pas vous pourriez planter votre Serveur (ne tapez jamais juste : Chmod -R 755 /)
    Chmod -R 777 var/www/vhosts/VotreSiteInternet/httpdocs/VotreMagento

Ou bien ça c’est pareil:

cd var/www/vhosts/VotreSiteInternet/httpdocs
ls
Chmod -R 777 VotreDossierMagento

Ou bien installer le fichier magento-cleanup.php

A télécharger ici : http://www.magentocommerce.com/wiki/_media/groups/227/magento-cleanup2.zip

Dans le dossier de votre magento, puis exécutez le depuis un Navigateur http://www.VotreSite.xx/votredossierMagento/magento-cleanup.php

(voir Tutoriel : changer les droits du dossier Magento 777 / 755)


3.Supprimer la cache /VotreMagento/var/cache

Indispensable ! Sans cela votre site va garder les anciens dossier, domaine et mémoire.

Plusieurs solutions selon les cas :

  • supprimer avec fileZilla en n’oubliant pas de cochez Afficher les fichiers cachés du serveurs sans cela il va vous manquer des fichier. (Solution Lente)
  • Utilisez magento-cleanup.hph

A télécharger ici : http://www.magentocommerce.com/wiki/_media/groups/227/magento-cleanup2.zip

Dans le dossier de votre magento, puis exécutez le depuis un Navigateur http://www.VotreSite.xx/votredossierMagento/magento-cleanup.php

  • En Ligne de Commande dans un terminal ou avec putty.exe (solution Ultra Rapide) avec la commande« rm – r  » Attention ne vous trompez pas vous pourriez tous supprimer sur votre serveur !
    rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/cache

Ou bien: (c’est pareil)

cd var/www/vhosts/VotreSiteInternet/httpdocs
rm -r -f VotreMagento/var/cache

Ou bien :

  • Si votre serveur est accessible avec FreeNx
  • Sélectionnez  dans le dossier magento/var/cache et /session
  • Supprimez-les

J’ai un tutoriel sur Comment vider la cache de Magento


4. Copier la base de donner

Plusieurs solutions selon les cas :

  • Avec Pesk  Pour copier la Base sur le Même Serveur, dans le même domaine, dans Plesk il y a un bouton « Copier votre base Mysql » , Pesk>Accédez Domaines >Panneau de Contrôle de votre site > Sites Web & Domaines > Bases de données > « Selectionnez votre Base »>Cliquez Creer une Copie » (C’est pas super Rapide, mais c’est Efficace.)
  • En Ligne de Commande : Très Efficace, permet de copier d’un site a l’autre, d’un Serveur a l’autre très rapidement , suivez le tuto dédié ici
  • Avec la Sauvegarde par Magento : « Quelle Galère, dire que j’ai utilisé cette solution pendant plus d’un an » c’est Lent, Compliqué, et pas fiable ! …Suivre ce tuto ici

   5. Editer core_config_Data

il est nécessaire de modifier core_config_Data, que si vous avez restaurez ou copié votre Magento vers un dossier ou nom de domaine différents de l’original

  • Modifier avec PhpAdmin
  • Si vous utlilisez Plesk c’est ici Plesk>  Abonnements> votre site> Sites Web & Domaines>  Bases de données > Admin Web
  • Recherchez la Table :  core_config_Data
  • à la 3iem  et 4iem ligne :
web/unsecure/base_url http://VotreSite/VotreDossierMagento/
web/secure/base_url http://VotreSite/VotreDossierMagento/
  • Cliquez sur Modifier pour corriger.

Mise en Garde : il y a un bug dans  phpMyAdmin : Si vous avez modifié juste avant une autre base MySQL, votre navigateur garde en mémoire la session donc vous empêche de la modifier ! Solution : il faut juste vider l’historique de votre navigateur. Personnellement, j’utilise 5 Navigateurs (Opera, Safari, Chrome, Firefox, Explorer) , comme ça je peux modifier ou comparer plusieurs bases MySQL en même temps sans avoir d’interférence entre les deux 🙂

J’ai un tutoriel : core_config_data


   6 Editer .htaccess

il est nécessaire de modifier .htaccess, que si vous avez restaurez ou copié votre Magento vers un dossier différents de l’original

  • Sur votre Serveur il doit être là : /var/www/vhosts/VotreSite/httpdocs/VotreDossierMagento/
  • Ouvrir le Fichier .htaccess de votre dossier Magento avec un éditeur Geany sous linux, Notepad++ sous Windows..)
  • Rechercher dans ce fichier :  RewriteBase /VotreDossierMagento/
  • Modifiez pour mettre le nom du nouveau dossier

j’ai fait un Tutoriel sur : Comment Optimiser Magento .htacces , php.ini, my.cnf


    7. Editer local.xml

il est nécessaire de modifier local.xml, si vous avez restaurez ou copié vers une base Mysql différente afin d’indiquer à Magento les nouveaux identifiants :Nom de la Base, utilisateur  et Mot de Passe. (si vous ne voyez pas que quoi je parle, allez voir  le Chapitre 4.Copier la base de donner)

  1. Ce Fichier ce trouve dans votre dossier magento : magento/app/etc/local.xml
  2. Il faut éditer le fichier local.xml de magento/app/etc/local.xml avec un éditeur de texte : sous linux avec Geany, sous windows avec NotePad++
  3. Pour Mettre les informations concernant votre nouvelle Base MySQL de Magento:
  • LoginDeLABase : Le nom de l’utisateur de votre base MySQL/Magento
  • MotDePasse : Le mot de Passe de l’utilisateur
  • NomDelaBase : LE Nom de Votre nouvelle Base MySQL/Magento
 /Magento/app/etc/local.xml 

     default_setup
            connection
                host  ![CDATA[localhost]]  /host
           username  ![CDATA[LoginDeLaBase]]  /username
            password  ![CDATA[MotDePasse]]  /password
            dbname  ![CDATA[NomDeLaBase]]  /dbname
            active 1 /active
        /connection
     /default_setup
/resources
session_save  ![CDATA[files]]  /session_save
/global
admin
    routers
        adminhtml
            args
              frontName  ![CDATA[admin]]  /frontName