Solution: impossible de ré-index Magento !

Votre magento ne veut plus re-indexer ! Pas de panique, voici les points à vérifier :

– avez vous purger le dossier locks ?

C’est lui qui peut bloquer la ré-indexation connectez vous a votre serveur avec putty par exemple, acéder au dossier de votre magento, et lancer la commande de re-indexation :

cd /var/www/vhost/VotreSiteWeb/Magento/
rm -R /var/locks

– Les paramètres du serveur sont-ils correct ? En grossissant la base mysql à besoin de ressource,  si les paramètres php sont d’origines : time_out sont à 60 et limit_ memory a 64/128Mo, etc.. il faut les modifier. voir ce tutoriel ►ici◄

PS : »nul besoin de prendre un serveur plus gros, un serveur puissant mal réglé fera la même chose »

– Avez vous essayé en SSH dans un terminal ?

La re-indexation sera plus rapide et s’il y a une erreur vous aurez un message précis. connectez vous a votre serveur avec putty par exemple, acéder au dossier de votre magento, et lancer la commande de re-indexation :

cd /var/www/vhost/VotreSiteWeb/Magento/
rm -R /var/locks; rm -R /var/cache;
php shell/indexer.php reindexall;

Si des messages d’erreurs apparaissent :

Exemple : exception ‘PDOException’ with message ‘SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn’t match value count at row 1’ 

C’est que la base de données à subit des dommages il va falloir la réparer: il faut utiliser Magento-db-repair-tool-1.1

– voir tutoriel réparer magento avec Magento-db-repair-tool

Vider la cache DNS de votre ordinateur / Navigateur

Cas d’école:

un site à changé de serveur ou d’hébergement, bref les des IP des DNS ont changé.

Votre ordinateur les a gardé en mémoire, donc la page ne s’affiche pas.

Solution :

Soit attendre :

Elles vont se mettre à jour automatiquement entre 24H et 48H.

 

Soit vider la cache des DNS de votre ordinateur.

Pour accéder au plus rapidement au nouveau serveur, il vous faudra réinitialiser le cache de votre DNS sur votre ordinateur. Voici la procédure suivant votre OS :

Pour vider le cache DNS sous Microsoft Windows :

Démarrer -> Exécuter -> tapez cmd
Dans la fenêtre DOS, tapez ipconfig /flushdns
Et voilà ! Votre cache DNS a été vidé.

Pour vider le cache DNS sous Linux, il suffit de relancer le processus nscd :

Tapez /etc/rc.d/init.d/nscd restart dans un terminal pour relancer nscd
Une fois la commande exécutée, votre cache DNS aura été nettoyé

Pour vider le cache DNS sous Mac OS X :

Si vous avez Léopard, tapez dscacheutil -flushcache… Sinon tapez lookupd -flushcachedans un terminal

 

 

 

Extension Magento : Filtre à Sélection Multiple

Dans Magento vous avez la possibilité de créer des filtres de sélections sans sélection multiple .

Avec cette extension ça devient possible :

▼Avant —————————————————————- Après ▼

Très Pratique :

Extention Payante 49€ mais très pratique.

 

 

____________________________________________________________

Une autre similaire  Extention encore plus puissante

mais plus chère 119 €

  •  http://www.magentocommerce.com/magento-connect/gomage-advanced-navigation-v-2-1.html

curlftpfs : ftp en ligne de commande, Monter répertoire d’un serveur FTP en LOCAL

Afin de monter un répertoire ftp, pour copier en ligne de commande facilement vers un serveur  il faut utiliser curlftpfssur .

curlftpfs fait partie de la logithèque d’ubuntu, mais il n’est pas installé d’origine,

Pour l’installer :

Sur un pc local ubuntu > applications >Logithèque Ubuntu > curlftpfss

Soit en ligne de commande dans un terminal (ssh avec putty.exe)

tapez

sudo apt-get install curlftpfs

_________________________________________________________

Pour l’utiliser, c’est très simple:

1) Créer sur votre serveur un répertoire (dossier) : exemple /MonFtp/

mkdir /MonFtp

2) Monter votre dossier du serveur FTP vers ce répertoir /MonFtp

  • MonServeurFtp  : c’est le nom de votre Serveur FTP ou son IP
  • /DossierDistant/ :   Dossier dans sur Serveur FTP racine souhaité.
  • Login:MotDePasse : Login de connexion et son Mot de passe
curlftpfs ftp://MonServeurFtp.fr/DossierDistant /MonFtp -o user=Login:MotDePasse

Terminée, Vous avez accès à votre FTP dans un dossier de votre système, /MonFtp/ comme s’il était sur votre PC !

Mise en garde : Attention :  Ce n’est pas visible sous Nautilus.

_____________________________________________________

Pour stopper l’accès :

il faut juste démonté /MonFtp

umount /MonFtp

_____________________________________________________

Pour copier / déplacer/ renommer c’est très simple :

il faut juste utiliser les Lignes de commande linux : cp, md, rd …

Exemples de copie vers le serveur FTP en lignes de commandes :

cp -r /exempleDossierLocal /MonFtp/

Exemple pour créer un dossier du serveur FTP en lignes de commandes :

mkdir  /MonFtp/NouveauDossier

Exemple pour supprimer un dossier du serveur FTP en lignes de commandes :

rm -Rf /MonFtp/NomDuDossier

_____________________________________________________

Pour automatiser une copie FTP avec un script de lignes de commande

ici un tutoriel : comment copier  automatiquement avec un script curlftpfs

Script pour garder en pleine forme Magento.

Script pour garder en pleine forme Magento.

Avec un éditeur de texte nous allons créer un fichier script.sh,

Il doit impérativement commencer par : #!/bin/sh

Nous allons y mettre tout ce que votre serveur Magento a besoin de faire régulièrement.

  • Nettoyer les log de la base de données régulièrement
  • Exécuter la tache Cron.sh de Magento
  • Vider la corbeille du serveur
  • Vider dossier cache et session*
  • Redémarrer les Services apache
  • Redémarrer les Services Mysql
* Mise en garde : vider les sessions a pour effet de vider les paniers en cours et déconnecte les utilisateurs en cours.

_______________________________________________________

 Nettoyer les log de la base de données régulièrement

1) Créer un fichier est les instructions Mysql pour vider les table de Log

Créer avec un éditeur un fichier texte , nommez -le : Vider_table_log.mysql

DELETE FROM dataflow_batch_export;
DELETE FROM dataflow_batch_import;
DELETE FROM log_customer;
DELETE FROM log_quote;
DELETE FROM log_summary;
DELETE FROM log_summary_type;
DELETE FROM log_url;
DELETE FROM log_url_info;
DELETE FROM log_visitor;
DELETE FROM log_visitor_info;
DELETE FROM log_visitor_online;
DELETE FROM report_viewed_product_index;
DELETE FROM report_compared_product_index;
DELETE FROM report_event;

Enregistrez les dans votre dossier /magento/shell/

2) On va créer le Script de purge :

#!/bin/sh
# La première ligne sert à spécifier quel shell tu veux excéuter. ici sh
# pour executer un script il faut
# 1) changer c'est droit pour devenir executable:  chmod +x NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

############################################################
#### ETAPE 1 Nettoyer les log de la base de données ###########
############################################################

#### Connexion a votre Base de Données Magento Mysql ####
##### mysql -h machine -u utilisateur -pMotdePase base_de_données
##  Exemples :
##  mysql -h localhost -u User161 -p35hpzq.. Base161
##  mysql -h 17.31.2.67 -u User161 -p35hpzq.. Base161
## vous pouvez tester dans un terminal, Si vous ête connecté il doit apparaitre :  Mysql>
##  Modifier ci-dessous pour mettre vos paramètre

mysql -h localhost -u User161 -p35hpzq.. Base161 < /magento/shell/Vider_table_log.mysql 
echo "si vous n'avez vu aucun message d'erreur la base est purgé :)"

#########################################################
#### ETAPE 2 Exécuter la tache Cron.sh de Magento #######
#########################################################
/var/www/vhosts/VotreSite.fr/httpdocs/DossierMagento/cron.sh

#########################################################
#### ETAPE 3 Vider la corbeille du serveur ################
#########################################################
rm -r -f /var/.Trash-0/

#########################################################
#### ETAPE 4 Vider cache et session #######################
#########################################################
rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/cache

# Attention cette ligne va également vider les panier en cours et déconnecter les utilisateurs
rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/session

#########################################################
#### ETAPE 5 Redémarrer les Services apache #############
#########################################################
service apache2 restart

#########################################################
#### ETAPE 6 Redémarrer les Services mysql ##############
#########################################################
service mysql restart

3) Exécuter :

  • Enregistrer le fichier dans un  dossier de votre Serveur, par exemple
     /var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh
  • Ajouter le Droit de l’exécuter :
    chmod +x /var/MesSauvegarde/sauvegarde.sh
  • Pour l’exécuter il vous reste plus qu’a taper :
    ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

______________________________________________________

Vous n’avez plus qu’a insérer ce petit script dans un tâche Planifiée avec Cron ou Gmone-schedule


Créer une tâche Planifiée

  • 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 “Script Magento en pleine forme”
  • Commande : Précisez votre Script ou la ligne de commande :  ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 7H00 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 7 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.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 : 0 7 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

Explication des instructions crontab sur wikipedia


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

_______________________________________________________

On peut aussi ajouter:

  • Sauvegarder la base de Magento
  • Compresser cette sauvegarde
  • Copier cette Sauvegarde vers un autre dossier

Voir tutoriel Créer une sauvegarde Mysql Magento en ligne de commande ici

Ligne commande des instructions Mysql Magento (exemple Core_Config_data)

Utilisation de MySQL en ligne de commande :

1)  Accéder a la base :

-h: machine hôte
-u: utilisateur MySQL (pas Unix)
-p: mot de passe MySQL

A saisir dans un terminal ou en SSH avec Putty.exe

mysql -h machine -u utilisateur -pMotdePase [base_de_données]

Exemple :
mysql -h localhost -u User161 -p35hpzq.. Base161
mysql -h 17.31.2.67 -u User161 -p35hpzq.. Base161

Si vous ête connecté il doit apparaitre : Mysql>

2) Tapez en lignes  les instructions MySQL:

Après avoir saisie la ligne de connexion a votre base dans un terminal :

Exemple
mysql -h localhost -u User161 -p35hpzq.. Base161
Mysql>

Il ne vous reste plus qu’a entrer des instructions MySQL :

Exemple Mysql> update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/secure/base_url";

3) Créer un Script d’instructions MySQL:

C’est très simple, dans un petit fichier texte vous saisissez les instructions Mysql que vous avez besoin, vous ajoutez un ; a la fin de chaque ligne.

Exemple  dans un Fichier texte appeler :mes.mysql

je saisie ces deux lignes pour Modifier le Core_config_data de Magento

update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/secure/base_url";
update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/unsecure/base_url";

Pour l’exécuter, je peux saisir :

mysql -h localhost -u User161 -p35hpzq.. Base161 < mes.mysql

Ou créer un Script   (voir Tuto créer un Script) : nommez le :

/var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_core_config_data.sh

#!/bin/sh
# La première ligne sert à spécifier quel shell tu veux excéuter. ici sh
# pour executer un script il faut
# 1) changer c'est droit pour devenir executable:  chmod 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

echo "Lancement du Script"
mysql -h localhost -u User161 -p35hpzq.. Base161 <mes.mysql
Echo "Terminé"

source : http://tecfa.unige.ch/guides/tie/html/mysql-intro/mysql-intro-7.html


4) Quelques Instructions Mysql pour Magento

Modifier une donnée dans une Table Mysql de Magento

Exemple pour  changer le Chemin de Magento : 

http://MonSite/MonDossierMagento/

Il faut Modifier la table : core_config_data

update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/secure/base_url";
update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/unsecure/base_url";

Supprimer tous les produits du catalogue Magento

truncate catalog_product_entity;

Faire un Backup de la Base Mysql, j’ai fait un Tuto détaillé ici 

mysqldump -u LoginUtilisateur -pMotDePase NomDeLaBase > MaSauvegarde.sql

Faire une Restauration de la Base Mysql, j’ai fait un Tuto détaillé ici 

mysql -u LoginUtilisateur -pMotDePase NomDeLaBase < MaSauvegarde.sql