Installer rapidement une Vm avec Magento2

Après le passage de la certification Magento 1 il est temps pour moi de creuser un peu plus intensément Magento 2.

Pour commencer voici donc un petit script bien utile qui va installer Magento 2 ainsi que tout ses prérequis ( nginx / php-fpm ) sur une Vm Ubuntu 16.04 brute
Dans mon cas celle-ci est hébergée dans AWS.

Voici le script complet

 #!/bin/bash
 
#Mise à jour du serveur
sudo apt-get update && sudo apt-get -y upgrade
 
#Installation des libs nécessaires au serveur
sudo apt-get -y install nginx git unzip htop php-fpm php-mysql php7.0-curl php7.0-mcrypt php7.0-xsl php7.0-intl php7.0-gd php7.0-mbstring php7.0-zip
 
#Installation de mysql
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password root"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password root"
sudo apt-get install -y mysql-server
 
#Récupération de magento2
cd /var/www/html/
sudo mkdir magento2
sudo chown -R ubuntu:www-data magento2
cd magento2
echo "Recupération et extraction de l'archive"
#@Todo : Trouver un miroir avec les versions de magento2
sudo wget http://web.h-hennes.fr

Installer rapidement une Vm avec Magento2 Lire la suite »

Passage du blog en https

Après tous les articles récents publiés sur le https, il était temps de mettre la recommandation du passage en full https sur ce blog en application.
Pour le coup c’est plutôt facile à faire avec wordpress, et c’était en place en moins de 30 minutes 🙂

Voici les différentes étapes effectuées pour passer wordpress en https.

A savoir que le https est déjà géré et disponible sans configuration via les dns cloudflare que j’utilise ( c’est pareil pour tous les hébergements mutualisés via les dns ovh également )

Configuration de wordpress

Pour commencer , il suffit de changer les urls du site dans la configuration de wordpress en allant dans « Réglages / Généraux »

Correction du contenu mixte

Le site est à présent disponible en https, cependant si vous avez des images vous allez rapidement constater des avertissements de contenus mixtes.
C’est à dire que votre navigateur vous alerte que votre page charge des éléments non sécurisés ( protocole http ), sur une page sécurisée ( https )

Pour corriger cela il va être nécessaire de mettre à jour votre base de données pour remplacer les urls http par du https
(Attention à bien sauvegarder votre base avant )

Dans mon cas cela est passé par l’éxécution de la requête suivante

UPDATE wp_posts SET `post_content` = REPLACE (`post_content`, 'http://www.h-hennes.fr'

Passage du blog en https Lire la suite »

Générer un certificat SSL autosigné

Afin de pouvoir utiliser le protocole https lors de vos développements locaux, il est nécessaire de générer un certificat https.

Voici une commande rapide qui vous permettra de générer un certificat auto-signé qui aura une validité d’un an.

 openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/ssl/ssl.crt -keyout /etc/ssl/ssl.key

Dans le cas d’un site live, il est recommandé d’utiliser un vrai certificat ssl ( qu’il soit payant ou généré via LetsEncrypt cf. https://www.h-hennes.fr/blog/2016/10/11/passer-au-https-avec-letsencrypt/ )

Vous pouvez ensuite ajouter ce certificat facilement à votre configuration nginx ou apache :

Nginx :

server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/ssl.crt
    ssl_certificate_key /etc/ssl/ssl.key;
 
    server_name local.dev;
    root /home/www;
}

 

Apache :

<VirtualHost *:443>
       
        ServerName local.dev
        DocumentRoot /home/www
        SSLEngine on
        SSLCertificateFile /etc/ssl/ssl.crt
        SSLCertificateKeyFile /etc/ssl/ssl.key

Générer un certificat SSL autosigné Lire la suite »

Optimisation des exports de bases de données pour mise à jour d’environnement de développement

En tant que développeur il est souvent nécessaire de faire des dumps de base de données pour mettre à jour les environnements de développements ( qu’ils soient locaux ou sur le serveur ).
Cependant les tables de productions sont souvent très lourdes et comportent des données qui ne sont pas forcément nécessaire pour développer.

Voici un petit script qui va vous faire gagner du temps dans l’export / import de ces bases de données.
La logique est relativement simple .

Pour les tables dont les données ne sont pas importantes, on va exporter uniquement la structure.
Puis nous excluons ces tables de l’export global.

 #!/bin/bash
 
#Variables de la base de données
host="localhost"
user="root"
pass="root"
dbname="dbname"
 
#Stockage de ces tables à ignorer dans une variables ( separer les noms par un espace)
ignoreTables="table1 table2 "
 
#Dump de la structure de ces tables
echo "Export de la structure des tables ignorées"
mysqldump -d -h $host -u $user -p$pass $dbname $ignoreTables > backup-structure.sql

Optimisation des exports de bases de données pour mise à jour d’environnement de développement Lire la suite »

Monitorer et optimiser son application web avec New Relic

A la suite de mon précédent article qui présentait uptime Robots, voici un outil très pratique dans la gestion de votre site web.

New Relic est un service hébergé en saas qui vous permets de monitorer votre application web.
Il est en revanche destiné uniquement aux possesseur de serveurs dédiés, et les droits root sont nécessaires pour installer les agents de monitoring. ( Je ne vous détaille pas l’installation , leurs documentations sont très complètes )

Mais de mon point de vue sa grande plus-value est la possibilité de suivre, et de déboguer votre code, en analysant l’ensemble des transactions effectués sur votre serveur.

Comme vous pouvez le voir sur la capture suivant, lors de l’affichage d’une page, l’ensemble des appels à la base de données sont listés, et le temps de chacun est affiché.

Ex transaction new relic

Ceci m’a déjà notamment permis d’identifier le code qui ralentissait l’application.

Je ferais sans doute des articles plus détaillés dans les prochaines semaines pour détailler l’utilisation de ce service 😉

Pour toutes les infos ça se passe par ici : https://newrelic.com/

Monitorer et optimiser son application web avec New Relic Lire la suite »

Suivez l’état de vos sites avec Uptime Robot

Voici un service très utile pour monitorer vos sites webs : uptime robots.
https://uptimerobot.com/

Celui-ci va tester toutes les 5 minutes que celui-ci répond bien , et vous envoie un email en cas de problème.
C’est basique mais très pratique ! :-), et gratuit !

Uptime robot
Pour ceux pour qui l’intervalle de 5 minutes est trop important il est possible de prendre des formules payantes.
Pour tout ceux qui n’ont pas de serveur dédié, c’est une solution hébergée très pratique.

Pour ceux qui ont un serveur dédié, j’avais fait un article sur nagios, qui permet de suivre plus finement : https://www.h-hennes.fr/blog/2015/08/04/monitorer-sites-mutualises-avec-nagios/

Suivez l’état de vos sites avec Uptime Robot Lire la suite »

Prestashop : Ne pas afficher la colonne de droite ou de gauche sur un controller

Un petit tip rapide si vous ne souhaitez pas afficher la colonne de gauche et/ou la colonne de droite dans un controller prestashop.

Pour cela rendez-vous dans la fonction initContent() du controller souhaité et ajoutez les lignes suivantes.

$this->display_column_left = false;
$this->display_column_right = false;

Les colonnes ne seront ainsi plus affichées 🙂

Attention je précise tout de même que pour les controllers du coeur de Prestashop faites cette modification via une surcharge et non directement dans les fichiers !…

Prestashop : Ne pas afficher la colonne de droite ou de gauche sur un controller Lire la suite »

Utiliser plusieurs version de php avec Apache

Un petit article pour présenter comment installer plusieurs versions de php en simultané sur votre serveur dédié.
Ceci peut notamment être utile si vous hébergez plusieurs sites sur votre serveur dédié et qu’ils n’ont pas les mêmes prérequis techniques.

En utilisant apache et php-fpm et c’est très facile et rapide à mettre en place.
Pour notre exemple je souhaite installer php 5.6 et php 7.0 en simultané.

#Pour commencer installer apache
apt-get install apache2 libapache2-mod-fastcgi
 
#Activativation des mode actions fastcgi et alias pour apache2
a2enmod actions fastcgi alias
 
#Ajouter le ppa Ondrej
add-apt-repository ppa:ondrej/php
 
#Update des packet
apt-get update
 
#Installer PHP 7 + extensions de base
apt-get install php7.0-fpm php7.0-xml php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-pdo
 
#Installer PHP 5.6 + extensions de base
apt-get install php5.6-fpm php5.6-xml php5.6-gd php5.6-mcrypt php5.6-mysql php5.6-pdo

Partant du principe que la version par défaut sera php 7.0,
On va ensuite configurer phpfpm 5.6 pour une exécution à la demande en éditant son fichier de configuration

vim /etc/php/5.6/fpm/pool.d

Utiliser plusieurs version de php avec Apache Lire la suite »

Magento : Sécuriser l’accès à l’administration

Les attaques sont de plus en plus nombreuses sur la plateforme magento, pour éviter les accès non autorisés à votre administration voici comment la sécuriser :

  • Changer le chemin par défaut de l’administration.

Dans le fichier app/etc/local.xml , définissez un nom d’administration personnalisé, par exemple mycustomadmin

 <routers>
 <adminhtml>
 <args>
 <frontName><![CDATA[mycustomadmin]]></frontName>
 </args>
 </adminhtml>
 </routers>
  • Restreindre l’accès à l’administration par adresse ip

Avec apache : rajouter la ligne suivante entre les balises

RewriteCond %{REMOTE_ADDR} !^xx.xx.xx.xx
RewriteRule ^(index.php/)?mycustomadmin/ - [L,R=403]

Avec nginx :

location ~ ^/mycustomadmin/ {
    allow xx.xx.xx.xx;
    deny all;
    try_files $uri $uri/ /index.php;
}
location ~ ^/index.php/?mycustomadmin/ {
    allow xx.xx.xx.xx;
    deny all;
    try_files $uri $uri/ /index.php;
}

Magento : Sécuriser l’accès à l’administration Lire la suite »

6 ans pour le blog :-)

Un petit article non technique pour une fois pour signaler ce jour les 6 ans de ce blog 🙂
Conformément à mes prévisions de l’époque ( cf. article https://www.h-hennes.fr/blog/2010/11/04/bienvenue-sur-mon-blog/ ) les audiences n’ont pas été très importantes lors de mes débuts… mais au fil des années j’ai tout de même continué à écrire des articles qui intéressent un public de niche orienté développement web.
Essentiellement sur les plateformes Prestashop et Magento sur lesquelles je me suis spécialisé.

A ce jour vous êtes prêt de 60 000 personnes à avoir visité ce blog et consulté près de 100 000 pages pour les 214 articles que compte ce blog ^^ 🙂
Merci à tous ! Ceci a été l’occasion de nombreux échanges techniques !

Pour l’instant j’ai toujours la motivation pour écrire des articles et faire vivre ce blog, je croise donc les doigts pour que cela continue encore pour quelques années.

De nouveaux articles viendront dans les prochains temps, toujours sur Prestashop et Magento pour lesquels je vais également m’orienter vers les nouvelles versions majeures ( PS 1.7 et magento 2 )

 …

6 ans pour le blog :-) Lire la suite »