Archives de juillet, 2016

Optimisation des performances Magento : configuration des sessions et du cache

Afin d’optimiser les performances de notre site magento, nous allons mettre en place les optimisations suivantes :

  • stockage des sessions dans memcache
  • stockage du cache dans redis

Cette solution  est modulable et applicable à une configuration multi-serveurs.( En centralisant les sessions sur un serveur spécifique, dans ce cas il suffit de replacer l’ip 127.0.0.1, par l’ip du serveur )

Pour commencer il faut installer les services memcached et redis sur votre serveur si ce n’est pas déjà fait

sudo apt-get install redis-server
sudo apt-get install memcached

installer également les librairies memcache pour php

sudo apt-get install php5-memcached php5-memcache

vous pouvez ensuite configurer le fichier local.xml avec les informations suivantes :

Pour la gestion des sessions dans memcache :

<!-- Stockage des sessions dans memcache -->
<session_save><![CDATA[memcache]]></session_save>
<session_save_path><![CDATA[tcp://127.0.0.1:11211?persistent=1&weight=2&timeout=10&retry_interval=10]]></session_save_path>

Les avantages du stockage dans memcache des sessions sont les suivants :

  • accès très rapide aux informations car stockées dans la mémoire vive
  • partage des sessions facile entre plusieurs serveurs

Puis pour la gestion du cache dans Redis :

<!-- Stockage du cache dans redis -->
<cache>
<backend>Mage_Cache_Backend_Redis</backend>
<backend_options>
<server>127.0.0.1</server>              <!-- or absolute path to unix socket or ip -->
<port>6379</port>
<persistent></persistent>               <!-- Specify a unique string like "cache-db0" to enable persistent connections.
Pas de commentaires

EicmsLinks : nouvelles fonctionnalités.

Une nouvelle version de mon module prestashop “EicmsLinks” est disponible.
Pour rappel ce module rajoute des liens dynamiques dans l’éditeur de texte tinyMce pour les contenus cms ( pages cms, descriptions produits, descriptions catégories)

  • pages cms
  • catégories
  • produit ( lien produit, ou ajout au panier)

Pour la description complète vous pouvez lire la page suivante : https://www.h-hennes.fr/blog/prestashop-liens-dynamiques-dans-lediteur-tinymce/

Cette nouvelle version instaure une nouvelle notion de “widgets” qui peuvent également être inséré directement dans la page cms.

Pour l’instant les widgets implémentés sont les suivants :

formulaire de login : permets d’afficher le formulaire de login dans n’importe quelle page cms

Widget login

liste de produits : permets d’afficher une liste de produits dynamique

Widget produits

Plusieurs options sont disponibles pour ce widget :
-type (new|category|price_drop) : Type de produits à afficher
-nb_products : nombre de produits à afficher
-id_category : dans le cas d’un affichage de produit d’une catégorie, identifiant prestashop de la catégorie.

L’ajout de cette fonctionnalité a été réalisée de manière à pouvoir rajouter très facilement des nouveaux widgets.…

Pas de commentaires

Autoriser un utilisateur à redémarrer apache ou nginx

Dans le cadre de l’hébergement de sites web, il peut être intéressant de donner la possibilité à l’utilisateur de recharger la configuration ou de redémarrer le serveur web.
Ceci lui permets d’être autonome dans l’ajout ou le changement de ses noms de domaines.

La procédure est relativement simple, voici comment procéder avec Ubuntu pour autoriser par exemple l’utilisateur herve a éxécuter ces commandes.

Connectez vous en root et exécuter la commande suivante :

visudo

Dans le fichier édité rajouter la ligne suivante :

Pour apache :

herve ALL=(ALL) /usr/sbin/service apache2 reload,/usr/sbin/service apache2 restart

Pour nginx :

herve ALL=(ALL) /usr/sbin/service nginx reload,/usr/sbin/service nginx restart

Votre user peut à présent exécuter ces commandes directement depuis son compte sous la forme :

sudo service apache2 restart

Les autres commandes restent bien inaccessibles à l’utilisateur :

Sorry, user test is not allowed to execute '/bin/su'
Pas de commentaires

Créer des utilisateurs virtuels avec proftpd

Si vous hébergez plusieurs sites sur votre serveur, il peut être utile de créer des utilisateurs ftp spécifiques pour chacun d’entre eux.
Ces utilisateurs ne nécessitent pas d’avoir un compte user linux sur le serveur, nous allons donc utiliser la fonctionnalité de création d’user virtuel de proftpd.
( Tout en conservant l’authentification des users linux standard) avec ubuntu 14.04

Pour commencer il faut éditer le fichier /etc/proftpd/proftpd.conf

Rechercher la ligne Authorder et saisir les informations suivantes :

Authorder mod_auth_file.c mod_auth_unix.c #Connexion via fichier utilisateur et utilisateurs linux
AuthUserFile /etc/proftpd/ftpd.passwd #Nom du fichier des mots de passe

Nous allons ensuite créer ce fichier ftpd.passwd et lui mettre les droits adéquats

sudo touch /etc/proftpd/ftpd.passwd
sudo chmod 440 /etc/proftpd/ftpd.passwd
sudo chown proftpd:root /etc/proftpd/ftpd.passwd

Redémarer ensuite proftpd pour vérifier que tout est bon

sudo service proftpd restart

Voici ensuite comment créer un nouvel utilisateur

Dans mon cas pour des raisons de droits je souhaites qu’il appartienne au groupe www-data (apache)
Pour récupérer son id il faut saisir la commande suivante

id www-data

qui renvoie un resulat du type :

uid=33(www-data) gid=33(www-data) groupes=33(www-data)

L’identifiant du groupe www-data est donc 33

Voici la commande pour créer un compte :

sudo ftpasswd --passwd --name=webmaster --uid=33 --gid=33 --home=/var/www/my-website/ --shell=/bin/sh

Le mot de passe du compte vous sera ensuite demandé.…

2 commentaires

Nginx et Apache : redirection sans www vers www

Pour uniformiser les urls de votre site web et éviter les duplications de contenu  dans le référencement de votre site.
Voici des extrait de code pour ceux qui souhaitent rediriger le nom de domaine sans les www, vers les www avec les serveurs nginx et Apache.

Par exemple si nous souhaitons rediriger le domaine mysite.com vers www.mysite.com

Nginx :
Dans le fichier de configuration du nom de domaine

#Noeud serveur pour le domaine sans www
server {
    listen       80;
    server_name  mysite.com;
    return       301 $scheme://www.mysite.com$request_uri; #redirection 301 vers le domaine avec les www ( http et https gérés )
}
#Noeud serveur pour le domaine avec www
server {
    listen       80;
    server_name  www.mysite.com;
    ...
}
Pas de commentaires

Alternative à phpMyAdmin : Adminer

Un petit article pour présenter un outil qui m’a fait gagner pas mal de temps récemment : Adminer
Cet outil, tout comme PhpMyAdmin permets de gérer les bases de données de votre hébergement via une interface web.

En général, phpmyadmin est installé directement par l’hébergeur et c’est l’outil utilisé par défaut pour gérer les bases de données.
Cependant il peut arriver que des hébergeurs ne le proposent pas.
Dans ce cas l’utilisation d’Adminer est la solution la plus simple et la plus rapide.

Comment ça marche ? :

  • Télécharger le fichier adminer.php depuis le site https://www.adminer.org/
  • Envoyer le via ftp n’importe ou sur votre hébergement.
  • Accéder au fichier depuis un navigateur web

Adminer

Et oui rien de plus à faire 🙂

Note :
Pour plus de sécurité renommez ce fichier en autre chose que adminer.php 😉…

Pas de commentaires


Compte Github