Installer Magento 2 sur Simple Hosting

Vous pouvez créer des sites de e-commerce avec Magento 2 sur Simple Hosting sur les instances PHP 5.6 / MySQL 5.6 (Percona) et PHP 7 / MySQL 5.6 (Percona).

Cet article vous offre un guide détaillé sur comment installer et configurer Magento Community Edition 2 de deux manières (sFTP et SSH, ou avec Composer, git et SSH), et vous accompagne dans la configuration des paramètres avancés tel que le cache Varnish, les tâches de fond, les backups, l'utilisation du CLI Magento et l'optimisation de PHP.

Pré-requis

  • Un compte Gandi (gratuit)
  • Une instance PHP / MySQL ((taille M ou supérieure recommandée)
    • PHP 5.6 / MySQL 5.6 (Percona) ou
    • PHP 7 / MySQL 5.6 (Percona)
  • Un VHOST (Adresse Web) déjà créé pour le domaine de votre site (par exemple, store.example.com) (voir le guide)
  • Une base de données et un utilisateur / MySQL déjà créés pour votre site Magento (voir le guide)

Méthode 1: copier les fichiers par sFTP

Téléchargez Magento 2 sur votre ordinateur

Téléchargez la dernière version de Magento 2 depuis le site officiel, en optant pour le format “tar.gz”. Il vous sera demandé de vous enregistrer gratuitement avant de pouvoir télécharger le fichier.

https://www.magentocommerce.com/download

Vous devriez maintenant avoir un fichier ”.tar.gz” sur votre ordinateur. Par exemple sur Windows, C:\Users\Me\Downloads\Magento-CE-2.0.7-2016-05-24-12-15-40.tar.gz. Ou, sur Linux ~/Downloads/Magento-CE-2.0.7-2016-05-24-12-15-40.tar.gz.

Accédez à votre instance par sFTP

Obtenez l'adresse sFTP de votre instance depuis sa page d'administration sur le site de Gandi.net. L'adresse ressemblera à :

123456789@sftp.dc2.gpaas.net

Connectez-vous avec votre client sFTP préféré en entrant le mot de passe de votre instance, ou en utilisant votre clé SSH pour vous identifier. Vous pouvez en savoir plus sur notre guide d'utilisation de sFTP sur Simple Hosting .

Copiez les fichiers sur votre instance

Une fois connecté, accédez à l'intérieur du répertoire htdocs du VHOST correspondant au domaine choisi pour Magento. Nous utiliserons toujours store.example.com dans les exemples.

Par exemple : vhosts/store.example.com/htdocs.

Maintenant, copiez le fichier Magento-CE-2.0.7-2016-05-24-12-15-40.tar.gz sur votre instance avec votre client sFTP. Vous pourrez ensuite vous connecter par SSH pour décompresser le fichier directement sur l'instance, tel que décrit plus bas.

Alternativement, vous pourriez décompresser le ficheir localement et déplacer le résultat, mais cela peut prendre plusieurs heures en raison du grand nombre de fichiers à copier (si vous optez tout de même pour cette option, pensez à ne pas copier le répertoire “dev” pour vous épargner plusieurs heures supplémentaires). En échange, vous n'aurez pas à vous connecter par SSH pour décompresser le fichier.

Décompressez le fichier sur votre instance

Obtenez les détails de connexion à la console SSH de votre instance depuis sa page d'administration sur le site de Gandi. Consultez notre guide d'utilisation de la console SSH sur Simple Hosting pour plus d'informations.

me@laptop $ ssh 12345678@console.dc0.gpaas.net
12345678@console.dc0.gpaas.net's password: <le mot de passe de votre instance>
Asking for console, please wait
Connected

Grabbing terminal
Ok

Si vous avez installé Gandi CLI, vous pouvez utiliser la commande suivante :

$ gandi paas console {nom de l'instance}

Une fois connecté à l'instance, accédez au répertoire htdocs du VHOST où vous avez placé le fichier contenant Magento Community Edition 2. Décompressez le fichier avec la commande tar, puis supprimez le fichier.

$ cd /srv/data/web/vhosts/store.example.com/htdocs
$ tar xzf Magento-CE-2.0.7-2016-05-24-12-15-40.tar.gz
$ rm Magento-CE-2.0.7-2016-05-24-12-15-40.tar.gz

La décompression peut prendre plusieurs minutes. Une fois terminée, Magento 2 sera installé sur votre instance et vous pouvez passer à l'étape de configuration décrite dans la dernière section de cet article.

Méthode 2: utiliser Composer, git et SSH

Pour utiliser Composer sur Simple Hosting, vous allez utiliser le déploiement avec git+SSH.

Nous vous recommandons d'installer Gandi CLI pour vous faciliter la tâche: les commandes de Gandi CLI sont très simples à utiliser.

Assurez-vous d'avoir les modules PHP suivants pour pouvoir faire l'installation locale de Magento (votre arbre git doit inclure le fichier composer.lock qui résulte d'une installation locale pour pouvoir lancer l'installation sur l'instance):

# PHP5.6
php5 php5-gd php5-mcrypt php5-curl php5-intl php5-xsl

# PHP7
php7.0 php7.0-gd php7.0-mcrypt php7.0-curl php7.0-intl php7.0-xsl

Si vous n'avez pas encore installé Composer, vous pouvez suivre notre guide pour apprendre à installer et utiliser Composer.

Clonez le VHOST

Vous pouvez créer le répertoire local et y configurer le dépôt git de l'instance automatiquement en clonant le dépôt qui a été créé automatiquement lors de la création du VHOST.

$ gandi paas clone magento2 --vhost store.example.com

Le répertoire store.example.com sera automatiquement créé. Accédez-y pour suivre les étapes suivantes.

cd store.example.com

Installez Magento avec Composer

Servez-vous de Composer pour créer un nouveau projet Magento à l'intérieur du répertoire htdocs.

$ php composer.phar create-project --repository-url=https://repo.magento.com/ magento/project-community-edition htdocs

Ici, vous devrez vous identifier avec la “public key” (username) et la “private key” (password) obtenues lors de la création de votre Access Key sur le site de Magento.

Mettez à jour votre instance

Mettez à jour votre arbre git et poussez vos changements sur votre instance.

$ git add .
$ git commit -m 'Install Magento 2'
$ git push gandi master
$ gandi deploy

Une fois le processus terminé, vous pourrez terminer la configuration de Magento directement dans votre navigateur.

Terminez l'installation de Magento 2 depuis votre navigateur

Une fois les fichiers placés sur votre instance, vous pourrez accéder à votre domaine depuis votre navigateur pour terminer l'installation de Magento 2.

Par exemple: http://store.example.com

Désactiver ''always_populate_raw_post_data'' sur PHP 5.6

Sur les instances PHP 5.6, vous devrez désactiver l'option de PHP always_populate_raw_post_data, en lui attribuant la valeur -1 (par défaut, elle est à 0). Cette option est dépréciée à partir de PHP 5.6 et n'existe plus dans PHP 7. Veuillez consulter la documentation officielle pour avoir plus d'informations.

Un fichier php-custom.ini est disponible sur votre instance et vous pouvez le modifier à partir d'une interface web, via sFTP ou par la console SSH. Veuillez consulter notre guide sur la modification de php.ini pour en savoir plus.

Via la console SSH, il vous suffit d'éxecuter la commande suivante puis d'attendre quelques minutes pour que le processus Apache soit redémarré automatiquement.

hosting-user@magento2:~$ echo "always_populate_raw_post_data=-1" >> /srv/data/etc/php/php-custom.ini

Vous pouvez aussi redémarrer votre instance manuellement depuis son interface d'administration sur le site de Gandi. Avec Gandi CLI, vous pouvez le faire avec la commande $ gandi paas restart {nom de l'instance}.

Voici à quoi doit ressembler le fichier php-custom.ini avec l'option always_populate_raw_post_data désactivée, comme requis par Magento 2 :

; You can not override all parameters.
; We keep the possibility to filter other parameters.
; Use this file with caution.
;
; Vous ne pouvez pas remplacer tous les paramètres.
; Nous gardons la possibilité de filtrer d'autres paramètres.
; Utilisez ce fichier avec précaution.
always_populate_raw_post_data=-1

Maintenant votre instance PHP 5.6 est prête pour Magento 2, comme vous le confirmera le test d'environnement réalisé pendant le processus d'installation.

Configuration de la base de données

Il vous sera demandé d'insérer le nom d'utilisateur et de la base de données que vous souhaitez utiliser. Si vous n'en avez pas encore créé, vous pouvez le faire maintenant en suivant notre guide de gestion de bases de données MySQL.

Configuration de l'utilisateur admin

Vous pourrez aussi créer l'administrateur de la boutique en entrant un nom d'utilisateur, un email et un mot-de-passe. Assurez-vous d'utiliser un mot de passe robuste !

Options avancées proposées sur Simple Hosting

Simple Hosting a une série de fonctionnalités qui se marient avec Magento pour obtenir un site rapide et robuste facilement : le support HTTPS, les tâches de fond avec Anacron, le cache Varnish et les Snapshots automatiques.

HTTPS

Vous pourrez activer HTTPS pour site Mangeto si vous avez une instance de taille M ou supérieure. Vous pouvez activer ces options pendant l'installation à n'importe quel moment depuis l'admin.

Pour activer SSL sur le VHOST de votre site Magento 2, il vous suffit d'y ajouter un certificat obtenu chez Gandi ou un autre prestataire. Vous pouvez en savoir plus sur notre guide d' utilisation de SSL sur Simple Hosting.

Avec HTTPS, vos utilisateurs seront protégés et votre site aura une meilleure visibilité.

Options de PHP (php.ini)

Magento 2 fournit un exemple de fichier php.ini (php.ini.sample) qui recommande certains paramètres PHP pour un usage en production.

Nous vous recommandons de modifier le fichier php-custom.ini de votre instance et d'y ajouter les valeurs suivantes :

session.save_path="/srv/data/var/php/www"
display_errors=Off

La première option vous sera utile pour l'execution de certaines commandes CLI de Magento, notamment. Puis le fait de cacher les erreurs évitera de montrer des informations potentiellement sensibles.

Vous pouvez modifier le fichier php-custom.ini via une interface, sFTP ou la console SSH. Consultez notre guide sur la modification de php.ini pour en savoir plus.

Dans la console SSH, par exemple, vous pouvez utiliser les commandes suivantes :

$ echo 'session.save_path="/srv/data/var/php/www"' >> /srv/data/etc/php/php-custom.ini
$ echo 'display_errors=Off' >> /srv/data/etc/php/php-custom.ini

Utilisation du CLI Magento

Magento 2 inclue une CLI (Command Line Interface, interface en ligne de commandes en anglais) que vous pouvez utiliser via la console SSH de votre instance.

La CLI Magento 2 vous permet d'effectuer de nombreuses tâches de maintenance, comme ré-indexer le cache, lancer les tâches cron, gérer et restaurer les sauvegardes, etc.

Connectez-vous à votre instance par SSH, accédez au répertoire de votre site et utilisez la commande suivante pour lister toutes les tâches disponibles:

$ cd /srv/data/web/vhosts/store.example.com/htdocs
$ php bin/magento list

Certaines commandes pourront avoir besoin de paramètres php spécifiques pour l'utilisation de PHP par le CLI. C'est le cas par exemple de la commande setup:backup, qui sert à générer des sauvegardes à la demande. Cette commande a besoin d'utiliser un chemin accessible en écriture pour la sauvegarde de sessions PHP. Puisque ce n'est pas une pratique commune à de nombreuses applications PHP, vous devez paramétrer l'option session.save_path manuellement. Autrement, vous obtiendriez une erreur de permission .

Si vous avez modifié le fichier php-custom.ini comme recommandé dans la section “Options de PHP (php.ini)”, vous pouvez utiliser la commande suivante pour vous en servir lors de l'exécution de commandes CLI qui en auraient besoin :

$ php -c "/srv/data/etc/php/php-custom.ini" bin/magento setup:backup --db

Pour définir une option temporairement à la volée, utilisez php -d “option=valeur”. Par exemple :

$ php -d "session.save_path=/srv/data/var/php/www" bin/magento setup:backup --db

Vous pouvez également ajouter le répertoire bin de Magento 2 à votre PATH et accéder au CLI en utilisant la commande magento lorsque vous êtes connectés à la console SSH.

$ chmod +x /srv/data/web/vhosts/store.example.com/htdocs/bin/magento
$ echo 'export PATH=$PATH:/srv/data/web/vhosts/store.example.com/htdocs/bin' >> /srv/data/etc/bash/bashrc
$ source /srv/data/etc/bash/bashrc
$ magento list

Autrement, ou en plus, vous pouvez utiliser par défaut les options PHP personnalisées avec un alias.

Par exemple :

$ ini_path=/srv/data/etc/php/php-custom.ini
$ cli_path=/srv/data/web/vhosts/store.example.com/htdocs/bin/magento
$ echo "alias mage='php -c $ini_path $cli_path'" >> /srv/data/etc/bash/bashrc
$ source /srv/data/etc/bash/bashrc
$ mage list

Cette technique fonctionne également avec l'option -d décrite plus haut.

Cron et tâches de fond avec Anacron

Vous pouvez éxecuter des scripts en tâche de fond pour maintenir Magento 2 à jour: reconstruire des index de base de données, envoyer des emails, télécharger des mises-à-jour automatiques…

Dans l'interface d'admin de votre site Magento, rendez-vous sur “Stores > Configuration > Advanced > System > Cron Scheduled Tasks”.

Nous recommandons de commencer avec la configuration suivante :

Cron configuration for group: index

Generate Schedules Every:   60
Schedule Ahead for:         60
Missed if Not Run Within:  180
History Cleanup Every:     600
Success History Lifetime:  600
Failure History Lifetime:  600
Use Separate Process:      Yes

Cron configuration for group: default

Generate Schedules Every:   60
Schedule Ahead for:         60
Missed if Not Run Within:  180
History Cleanup Every:     600
Success History Lifetime:  600
Failure History Lifetime:  600
Use Separate Process:      No

Ensuite, configurez Anacron pour programmer l'éxécution automatique de ces tâches toutes les heures.

Via la console SSH, modifiez le fichier /srv/data/etc/cron/anacrontab (avec vi, vim ou nano) et ajoutez-y les informations suivantes (remplacez toutes les mentions à “store.example.com” par le nom du VHOST correct) :

MAGE_WWW=/srv/data/web/vhosts/store.example.com/htdocs
PHP_OPT="-d session.save_path=/srv/data/var/php/www"
# si vous avez modifié le fichier php-custom.ini, utilisez plutôt la ligne ci-dessous
# PHP_OPT="-c /srv/data/etc/php/php-custom.ini"
 
@hourly 0 mage.cron php $PHP_OPT $MAGE_WWW/bin/magento cron:run >> $MAGE_WWW/var/log/magento.cron.log
@hourly 0 mage.update.cron php $PHP_OPT $MAGE_WWW/update/cron.php >> $MAGE_WWW/var/log/update.cron.log
@hourly 0 mage.setup.cron php $PHP_OPT $MAGE_WWW/bin/magento setup:cron:run >> $MAGE_WWW/var/log/setup.cron.log

Avec ces définitions, Anacron exécutera ses tâches de routine toutes les heures, l'interval de temps le plus court supporté par Anacron.

Vous pouvez effectuer cette configuration par sFTP ou via la console SSH. Consultez notre guide d'utilisation d'Anacron pour en savoir plus.

Pour exécuter des tâches de fond plus fréquemment, vous pourrez utiliser un service externe qui appelle le fichier pub/cron.php depuis l'extérieur. Si vous optez pour cette méthode, nous vous recommandons de sécuriser l'accès à ce fichier.

Pour sécuriser l'accès à cron.php depuis le web, commencez par stocker un mot-de-passe sécurisé pour l'utilisateur hosting-user.

Utilisez pour cela l'outil htpasswd et utilisez, par exemple, le chemin suivant /srv/data/home/.magento.cron.auth pour garder le fichier :

$ htpasswd -c /srv/data/home/.magento.cron.auth hosting-user
> Password:
> Confirm password:

Ensuite, modifiez le fichier /srv/data/web/vhosts/store.example.com/htdocs/pub/.htaccess. Localisez et supprimez les lignes suivantes :

## Deny access to cron.php
<Files cron.php>
        order allow,deny
        deny from all
</Files>

Et remplacez-les par ces instructions :

<Files cron.php>
        AuthType Basic
        AuthName "Cron Authentication"
        AuthUserFile /srv/data/home/.magento.cron.auth
        Require valid-user
</Files>

Vous pouvez maintenant accéder à http://store.example.com/pub/cron.php et vous identfier avec le nom d'utilisateur et le mot de passe créés plus haut.

Avec curl, par exemple :

$ curl --user hosting-user:{mot-de-passe} http://store.example.com/pub/cron.php?group=default

Cache Varnish

Magento 2 recommande l'utilisation du logiciel de caching Varnish pour son utilisation en production. La plateforme Simple Hosting vous offre un système de cache Varnish adapté, le Web Accelerator, que vous pouvez utiliser nativement avec Magento 2.

Dans l'interface d'admin de votre site Magento, naviguez vers “Stores > Configuration > Advanced > System > Full Page Cache”.

Sélectionnez “Varnish Caching” dans le champs “Caching Application”, puis définissez le temps de vie (TTL) du cache, en secondes. Magento utilise 86400 secondes (24 heures) par défaut.

Sauvegardez votre changement et désormais votre site Mangento 2 n'utilisera plus le CPU, RAM et stockage de votre instance pour gérer son système de cache. C'est au Web Accelerator de s'en charger. En fait, il s'en chargeait déjà par défaut mais votre boutique ne le savait pas encore et générait son propre cache en plus, pour rien.

Vous pouvez consulter la documentation du système de cache du Web Accelerator pour en savoir plus. Sachez aussi que vous pouvez “purger” (vider) le cache depuis le panneau de contrôle de votre instance.

Snapshots et backups automatiques

Magento 2 offre plusieurs options pour effectuer des sauvegardes automatiques de votre site. Sur Simple Hosting, les snapshots automatiques s'occupent déjà de sauvegarder vos fichiers (à condition que vous ayez souscrit à cette option) et vous permet de restaurer votre instance à un état précédent en un click, à l'exception de la base de données.

A partir du moment où vous utilisez les Snapshots de Simple Hosting, il vous suffit donc d'activer le backup automatique de la base de données dans Magento pour que tout votre site soit bien sauvegardé.

Pour activer le backup automatique de la base de données, rendez-vous dans l'interface d'admin de votre site Magento puis naviguez vers “Stores > Configuration > Advanced > System > Scheduled Backup Settings”.

Dans cette action, sélectionnez “Yes” pour “Enable Scheduled Backup” puis “Database” pour “Backup Type”. Ajustez les autres préférences si nécessaire (les options par défaut peuvent être suffisantes), puis sauvegardez.

Si jamais vous devez vous servir de vos sauvegardes, vous pourrez restaurer un Snapshot depuis l'interface de gestion de votre instance. Ensuite, recréez votre base de données et l'utilisateur en utilisant les mêmes données qu'avant, puis ré-importez la base de données avec le CLI de Magento 2.

Connectez-vous à votre instance via la console SSH, identifiez la dernière sauvegarde de la base de données et faites le “rollback” pour restaurer les contenus de la base de données:

$ cd /srv/data/web/vhosts/store.example.com/htdocs
$ php bin/magento info:backups:list
$ php bin/magento setup:rollback -d "1440611839_db.tgz"

Une section dédiée à l'utilisation du CLI de Magento 2 est disponible plus haut.

Dernière modification: le 07/07/2016 à 12:07 par Alexandre L. (Gandi)