Comment installer et configurer Magento sur Ubuntu 14.04

introduction

Magento est le système de gestion de contenu le plus populaire pour les sites Web de commerce électronique. Il est utilisé aussi bien par les petites entreprises que par les grandes entreprises et peut être enrichi par des milliers d'extensions et de thèmes. Magento utilise le système de base de données MySQL, le langage de programmation PHP et des éléments du Zend Framework.

Dans ce didacticiel, nous verrons comment installer Magento avec un serveur Web Apache sous Ubuntu 14.04, ainsi que des configurations courantes de performances et de sécurité.

Conditions préalables

Avant de commencer avec ce guide, vous devez d'abord suivre certaines étapes.

En raison des exigences liées au traitement des opérations Magento, il est recommandé d’installer Magento sur un VPS disposant d’au moins 2 Go de RAM. Cela garantira que tous les logiciels impliqués dans la gestion du magasin disposeront de suffisamment de mémoire pour fonctionner.

Vous aurez besoin d'accéder à un utilisateur non root disposant des privilègessudo. Si vous ne l'avez pas encore fait, vous pouvez parcourir lesUbuntu 14.04 initial server setup guide pour créer ce compte.

En outre, une pile LAMP (Linux, Apache, MySQL et PHP) doit être installée sur votre instance VPS. Si ces composants ne sont pas déjà installés et configurés, vous pouvez utiliser ce guide pour apprendre leshow to install LAMP on Ubuntu 14.04.

Une fois ces étapes terminées, vous pouvez vous connecter à votre serveur Ubuntu en tant qu'utilisateur non root et poursuivre votre installation de Magento.

[[step-1 -—- configure-apache-and-php]] == Étape 1 - Configurer Apache et PHP

Avant de télécharger et d’installer Magento, Apache et PHP doivent être configurés pour gérer correctement le trafic et les tâches informatiques de Magento, et certains modules supplémentaires devront être installés et activés.

Apache Virtual Host

Tout d'abord, nous devons configurer un fichier hôte virtuel afin qu'Apache sache gérer correctement notre site Magento. Nous pouvons utiliser notre éditeur de texte pour créer un nouveau fichier hôte virtuel dans/etc/apache2/sites-available/. Dans cet exemple, l'hôte virtuel s'appellemagento, mais vous pouvez lui donner un autre nom si vous préférez.

sudo nano /etc/apache2/sites-available/magento.conf

Les besoins de l'hôte virtuel Magento sont assez simples. Commencez par une balise<VirtualHost> qui écoute tout le trafic du port 80, le port HTTP standard. Ajoutez ensuite une ligne indiquant à Apache où trouver les fichiers de votre site avec la directiveDocumentRoot:


    DocumentRoot /var/www/html

Nous devons ajouter quelques paramètres supplémentaires pour que Magento fonctionne correctement. À l'intérieur d'une balise<Directory> pointant vers la racine de notre document, nous entrerons les options d'indexation de répertoire d'Apache, de prise en charge des liens symboliques et de prise en charge multilingue. Nous ajouterons également une ligne permettant aux fichiers.htaccess de remplacer les paramètres Apache, ce qui offre un contrôle plus précis des dossiers individuels.

. . .
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    
. . .

Avec tous ces composants en place, votre fichier d’hôte virtuel ressemblera à ceci:


    DocumentRoot /var/www/html
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    

Lorsque vous avez terminé de rédiger le bloc serveur, enregistrez et fermez le fichier. Pour activer le nouveau site avec Apache, utilisez la commandea2ensite:

sudo a2ensite magento.conf

Nous souhaitons également désactiver l'hôte virtuel par défaut fourni avec Apache, car il serait en conflit avec notre nouvel hôte virtuel. Pour désactiver un site avec Apache, utilisez la commandea2dissite:

sudo a2dissite 000-default.conf

Paramètres PHP

Ensuite, nous devons modifier la quantité de mémoire allouée par Apache aux processus PHP. Magento utilise PHP pour presque tout ce qu'il fait et a besoin de suffisamment de mémoire pour des opérations complexes telles que l'indexation de produits et de catégories. Par défaut, PHP alloue un maximum de 128 Mo de mémoire à chaque script exécuté sur Apache. Nous devrions abaisser cette limite jusqu’à un montant raisonnable afin de s’assurer qu’aucun des scripts de Magento n’est à court de mémoire, ce qui provoquerait un blocage du script.

Ouvrez le fichier de configuration PHP d’Apache avec votre éditeur de texte et vos privilèges root:

sudo nano /etc/php5/apache2/php.ini

Recherchez la ligne suivante, qui déclare la limite de mémoire par script PHP:

memory_limit = 128M

Modifiez cette ligne pour que la limite soit élevée à 512 Mo. Les besoins en mémoire de votre magasin peuvent être plus importants en fonction du nombre de produits de votre catalogue et du nombre de visiteurs que vous recevez quotidiennement. Certains grands magasins doivent définir une limite de mémoire de 2 Go ou plus, mais 512 Mo devraient suffire pour le moment.

memory_limit = 512M

Note: Veillez à utiliser «M» à la fin du numéro de mémoire.

Lorsque vous avez terminé ces modifications, enregistrez et fermez le fichier. La prochaine fois que vous redémarrerez Apache, la modification de la limite de mémoire prendra effet.

Magento a besoin de quelques modules PHP en plus de ceux fournis avec PHP. Nous pouvons les obtenir directement à partir des dépôts par défaut d’Ubuntu après avoir mis à jour notre index de paquets local:

sudo apt-get update
sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt

Ces extensions permettront à Magento de gérer correctement les requêtes HTTP, les vignettes d’images et le cryptage des données. Maintenant que nous avons tous les paquets dont nous avons besoin, nous pouvons activer le support de la réécriture d'URL pour Apache et du cryptage pour PHP:

sudo a2enmod rewrite
sudo php5enmod mcrypt

Une fois que toutes ces modifications de configuration et d’extension ont été apportées, il est temps de redémarrer l’instance de serveur Apache pour que les modifications soient appliquées:

sudo service apache2 restart

[[step-2 -—- create-a-mysql-database-and-user]] == Étape 2 - Créer une base de données MySQL et un utilisateur

Magento utilise une base de données MySQL pour gérer les données du site, telles que les informations sur les produits et les commandes. MySQL est installé et configuré, mais nous devons créer une base de données et un utilisateur avec lesquels Magento peut travailler.

Commencez par vous connecter au compte racine MySQL:

mysql -u root -p

Vous serez invité à saisir le mot de passe du compte racine de MySQL, que vous aurez défini lors de l’installation de MySQL. Une fois que le mot de passe correct a été soumis, vous recevrez une invite de commande MySQL.

Nous allons d’abord créer une base de données sur laquelle Magento peut écrire des données. Dans cet exemple, la base de données s'appelleramagento, mais vous pouvez la nommer comme vous préférez.

CREATE DATABASE magento;

Note: Chaque instruction MySQL doit se terminer par un point-virgule (;), alors vérifiez que vous l'avez incluse si vous rencontrez des problèmes.

Ensuite, nous allons créer un nouveau compte utilisateur MySQL qui sera utilisé exclusivement pour opérer sur la nouvelle base de données. La création de bases de données et de comptes à fonction unique est une bonne idée, car elle permet de mieux contrôler les autorisations et d’autres besoins en matière de sécurité.

Je vais appeler le nouveau comptemagento_user et lui attribuer un mot de passe depassword. Vous devez absolument utiliser un nom d'utilisateur et un mot de passe différents, car ces exemples ne sont pas très sécurisés.

CREATE USER magento_user@localhost IDENTIFIED BY 'password';

À ce stade, vous disposez d'une base de données et d'un compte utilisateur spécialement conçus pour Magento. Cependant, l'utilisateur n'a aucun droit d'accès à la base de données. Nous devons relier les deux composants en accordant nos privilèges d’accès utilisateur à la base de données:

GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY 'password';

Maintenant que l’utilisateur a accès à la base de données, nous devons vider les privilèges pour que MySQL soit informé des récents changements de privilèges que nous avons apportés. Une fois que cela est fait, nous pouvons quitter l’invite de commande MySQL.

FLUSH PRIVILEGES;
exit

Vous devriez maintenant revenir à votre invite de commande SSH habituelle.

[[step-3 -—- download-and-set-up-magento-files]] == Étape 3 - Télécharger et configurer les fichiers Magento

Nous sommes maintenant prêts à télécharger et installer Magento. Pour voir ce qu'est la dernière version stable de Magento Community Edition, rendez-vous sur lescommunity download page. Dans cet exemple, le numéro de version actuel était 1.9.0.1, mais vous devez le remplacer par la dernière version disponible. Il est toujours recommandé d'utiliser la dernière version de Magento, car les nouvelles versions incluent souvent des mises à jour de sécurité importantes en plus des fonctionnalités nouvelles et améliorées.

Utilisezwget pour télécharger l'archive de fichiers Magento dans votre répertoire personnel:

cd ~
wget http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz

Nous pouvons extraire les fichiers archivés pour reconstruire le répertoire Magento avectar:

tar xzvf magento-1.9.0.1.tar.gz

Vous aurez maintenant un répertoire appelémagento dans votre répertoire personnel. Nous devrons déplacer les fichiers décompressés vers la racine du document d’Apache, où ils pourront être servis aux visiteurs de notre site Web. Nous utiliseronsrsync pour y transférer nos fichiers Magento, puisquersync inclura des fichiers cachés importants comme.htaccess. Une fois le transfert terminé, nous pouvons nettoyer notre répertoire personnel en supprimant le dossiermagento et l'archiver.

sudo rsync -avP ~/magento/. /var/www/html/
rm -rf ~/magento*

rsync copiera en toute sécurité tout le contenu du répertoire que vous avez décompressé vers la racine du document à/var/www/html/. Nous devons maintenant attribuer la propriété des fichiers et des dossiers à l’utilisateur et au groupe d’Apache:

sudo chown -R www-data:www-data /var/www/html/

Cette modification permettra à Apache de créer et de modifier des fichiers Magento. Nous sommes maintenant prêts à terminer le processus d’installation via l’interface de configuration basée sur le navigateur de Magento.

[[step-4 -—- completion-installation-through-the-web-interface]] == Étape 4 - Finalisation de l'installation via l'interface Web

Pour accéder à l'interface Web avec votre navigateur, accédez au nom de domaine ou à l'adresse IP publique de votre serveur:

http://server_domain_name_or_IP/

Si les étapes précédentes ont été suivies correctement, l’assistant d’installation de Magento vous sera présenté. La première page affichera le contrat de licence, que vous devrez accepter avant de pouvoir frapperContinue.

Magento Installation Wizard

La page suivante vous permet de modifier vos paramètres régionaux, tels que la langue, le fuseau horaire et la devise. Remplacez-les par les paramètres les plus appropriés à l'endroit où vos produits sont vendus, puis appuyez surContinue.

Magento Localization Settings

La page de configuration est divisée en trois sections. La première section vous permet de configurer la manière dont Magento se connecte à sa base de données MySQL. Assurez-vous queDatabase Type est défini sur «MySQL» et queHost est défini sur «localhost». Vous devrez ensuite renseignerDatabase Name,User Name etUser Password avec les paramètres que vous avez choisis lors de la création de la base de données MySQL et du compte utilisateur précédemment.

Magento Database Connection

La section suivante de la page de configuration vous permet de configurer l’URL de votre boutique, ainsi que quelques autres fonctions contrôlées par Apache. Assurez-vous queBase URL correspond au nom de domaine de votre serveur; si vous n’avez pas encore configuré de nom de domaine, vous pouvez utiliser l’adresse IP publique de votre serveur pour le moment. C'est une bonne idée de changer lesAdmin Path en quelque chose de moins évident que "admin" pour qu'il soit plus difficile pour quelqu'un de trouver votre panneau d'administration. Vous devriez également envisager de vérifierUse Web Server (Apache) Rewrites pour rendre les URL de votre site plus conviviales pour les utilisateurs et les moteurs de recherche. Le module Apache nécessaire pour prendre en charge cette fonctionnalité,mod_rewrite, a déjà été activé et est prêt à être utilisé.

Magento Web Access Options

La dernière partie de la page de configuration sert à sélectionner la méthode de stockage des données de session. Magento est livré avec deux méthodes de sauvegarde des données de session utilisateur. La méthodeFile System stocke les sessions dans des fichiers sur le serveur et est la méthode la plus simple pour commencer. La méthodeDatabase stocke les sessions sous forme d'entrées dans la base de données MySQL et est idéale pour les installations Magento qui s'étendent sur plusieurs serveurs. Pour l'instant, nous pouvons nous en tenir à la méthodeFile System, car elle fonctionnera généralement mieux dès la sortie de la boîte.

Magento Session Storage Options

Après avoir sélectionné vos options de configuration et appuyé surContinue, vous passez à la page de création de compte administrateur. C'est à cet endroit que vous créerez le compte administratif responsable de la maintenance du magasin Magento. Assurez-vous que le nom d'utilisateur et le mot de passe sont sécurisés et difficiles à deviner. Le champEncryption Key doit être laissé vide sauf si vous migrez des données depuis une installation Magento existante. Si vous laissez le champ vide, Magento générera une nouvelle clé de cryptage lorsque vous cliquerez surContinue et l'affichera pour vous sur la page suivante. Assurez-vous de sauvegarder cette clé de chiffrement dans un endroit sûr au cas où vous en auriez besoin à des fins de migration ultérieure.

Magento Admin Account

Une fois la configuration Web terminée, votre installation Magento sera prête à être utilisée. Vérifiez votre nouvelle vitrine en visitant le nom de domaine ou l’adresse IP publique de votre serveur dans votre navigateur Web:

http://server_domain_name_or_IP/

Si tout a été configuré correctement, une vitrine ressemblant à ceci devrait vous être présentée:

Magento Storefront

Vous pouvez également visiter votre nouveau site administrateur en allant dans le répertoire administrateur que vous avez défini précédemment:

http://server_domain_name_or_IP/admin/

Connectez-vous avec votre nom d'utilisateur et mot de passe administrateur pour voir votre nouveau tableau de bord:

Magento Admin Dashboard

Conclusion

Maintenant que votre magasin Magento est opérationnel, vous êtes prêt à commencer à créer votre catalogue de projets et à commencer à vendre!

La prochaine étape cruciale consiste à chiffrer le trafic de votre site avec un certificat SSL. Voici un guide pour vous aider à démarrer:How To Install an SSL Certificate from a Commercial Certificate Authority.