Le fameux Magento 2 attendu depuis des années débarque, et c’est sur Github que les sources sont disponibles. Nous allons voir ensemble comment installer ce CMS sur votre machine, et comment le configurer correctement.
Pré-requis
Avant d’installer Magento 2, veuillez vérifier les éléments requis :
– Système d’exploitation Linux tel que RedHat Enterprise Linux (RHEL), CentOS, Ubuntu, Debian, etc…
– Composer (Gestionnaire de dépendances pour PHP) (Installer les paquet curl et php5-cli si nécessaire avant de commencer l’installation expliquée sur ce lien)
– Apache 2.2 ou 2.4 / Ou Nginx 1.8
– PHP 5.6.x ou 5.5.22 (ou plus), ou 7.0.2 (supporté à partir de Magento 2.0.1)
– Les extentions PHP suivantes :
* bc-math (Pour Magento Enterprise)
* curl
* gd, ImageMagick 6.3.7 (ou plus) ou les deux
* intl
* mbstring
* mcrypt
* mhash
* openssl
* PDO/MySQL
* SimpleXML
* soap
* xml
* xsl
* zip
– MySQL 5.6 ou plus
– Mail Transfer Agent (MTA) ou un serveur SMTP
– Facultatif mais recommandés :
* php_xdebug2.2.0 ou plus (à installer uniquement sur les environnement de développement, pas en production)
* PHPUnit (en ligne de commande) 3.7 ou plus
Je vous propose une commande magique pour installer toutes les extentions PHP requises, ainsi que xdebug et PHPUnit :
sudo apt-get install curl php5-mysql libapache2-mod-php5 php5-mcrypt php5-curl php5-gd php5-imagick php5-xdebug phpunit php5-intl php5-xsl
N’hésitez pas à faire un phpinfo() pour vérifier que les modules soient bien présents et activés !
Composer et Magento
Composer est utilisé pour installer Magento 2, ce qui permet de gérer les extensions et les dépendances lors du processus d’installation.
Ouvrez votre terminal, et lancez les commandes suivantes :
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
Cloner le dépôt Github Magento 2
Installez git si ce n’est pas déjà fait :
sudo apt-get install git
Allez dans le dossier dans lequel installer Magento 2 sur votre machine (Sous Apache c’est souvent /var/www et sous Nginx, /usr/share/nginx/html) et lancer le clonage :
cd /var/www/ git clone -b 2.1 https://github.com/magento/magento2.git
Nous clonons la branche « 2.1 » qui est la branche « officielle » pour Magento2.
Vous pouvez cloner la branche « develop » si vous souhaitez suivre en temps réel les modifications de Magento2
Lancement de Composer
Allez dans le dossier dossier racine de Magento 2 (cd magento2). Une fois dedans lancez la commande :
composer install
Vous verrez des paquets s’installer s’il vous en manque, et tant mieux, car avec Magento 2, on est sûr d’avoir tout ce dont on a besoin avant de le mettre en place ! Ne lancez pas la commande en sudo, si vous avez des soucis durant l’installation, essayez de supprimer le dosier « /home/<USER>/.composer »
Si vous avez une erreur du genre « enter your GitHub credentials to go over the API rate limit », allez sur le site de Github, créez votre compte. Une fois l’inscription terminée, saisissez votre login et votre mot de passe dans votre terminal. L’installation poursuivra son cours.
Si vous avez un message du type « please create a GitHub OAuth token to go over the API rate limit », rendez-vous toujours sur le site de Github pour suivre le processus pas à pas. Une fois le numéro de votre jeton obtenu, collez le dans le terminal.
Si vous avez un message du type « Authentication required (repo.magento.com): », rendez-vous sur le site de Magento, créez-vous un compte. Connectez-vous et allez dans la section « Developper > Secure Keys ». Créez une nouvelle clé (je l’ai appelée « magento2 ») , la clé publique vous servira de Username, et la clé privé de password. Renseignez ces infos dans le terminal pour continuer la suite de l’installation
Mise en place des propriétaires et des permissions du système de fichier
Pour rechercher l’utilisateur du serveur web, lancer la commande suivante :
- Ubuntu / Apache:
ps -ef | grep apache2
- Ubuntu / Nginx :
ps -ef | grep nginx
Comme je m’en doutais, l’utilisateur est « www-data » pour mon serveur. Nous utiliserons cette valeur pour les opérations suivantes, à vous d’adapter en conséquences si vous avez un résultat différent. Vérifiez le groupe de cet utilisateur, il est probable que le groupe soit le même que le nom d’utilisateur :
groups www-data
Rendez-vous donc dans le dossier racine de votre Magento (/usr/share/nginx/html/magento2 ou /var/www/magento2), et mettons l’utilisateur du serveur web en propriétaire :
cd /var/www/magento2 sudo chown -R :www-data .
Toujours en restant dans le dossier de votre Magento 2, mettez les permissions 770 pour dossiers, et 660 pour les fichiers :
sudo find . -type d -exec chmod 755 {} \; && sudo find . -type f -exec chmod 644 {} \; && sudo chmod u+x bin/magento; sudo chmod -R g+w ./{pub,var}; sudo chmod -R g+s ./{pub,var}
Ajoutez votre utilisateur au groupe www-data (à adapter selon votre installation) :
sudo adduser <username> www-data
N’oubliez pas de vous déconnecter et de vous reconnecter pour prendre en compte l’affectation au nouveau groupe !
Lancement de l’installation de Magento2
A partir de cet instant, vous pouvez vous rendre sur l’URL de votre Magento local pour lancer la procédure d’installation. Vérifiez bien la configuration de vos vhosts avant de tester :
sudo vi /etc/hosts
Ajoutez la ligne :
127.0.0.1 magento2.lan
Créez votre nouveau vhost :
sudo vi /etc/apache2/sites-available/magento2.conf
Voici ce que j’ai mis pour ma part sous apache :
<VirtualHost *:80> ServerName magento2.lan DocumentRoot /var/www/magento2 SetEnv MAGE_MODE "developer" <Directory /var/www/magento2> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/magento2_error.log # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/magento2_access.log combined </VirtualHost>
Activez le vhost avec un lien symbolique :
sudo ln -s /etc/apache2/sites-available/magento2.conf /etc/apache2/sites-enabled/magento2.conf
N’oubliez pas de redémarrer apache :
sudo service apache2 restart
Une fois terminé, rendez-vous à l’url de votre environnement, et la procédure d’installation va commencer.
Suivez pas à pas l’installation
N’hésitez pas à faire part de vos problèmes par commentaire, après avoir vérifié bien sur que votre soucis n’est pas référencé sur cette page : https://github.com/magento/magento2#troubleshooting
Pour lancer l’installation en ligne de commande, rendez-vous sur la page officielle de Magento !
Problèmes lors de l’installation
Changer la configuration de xdebug.max_nesting_level
sudo vi /etc/php5/apache2/php.ini
Ajoutez la ligne suivante :
xdebug.max_nesting_level=200
Redémarrez apache :
sudo service apache2 restart
Créer la BDD « magento2 »
C’est le nom que je lui ai donné, a vous de l’appeler comme vous le souhaiter selon la configuration renseignée dans l’installation.
Mettre à jour MySQL 5.6
Sous Ubuntu, lancez la commande suivante :
sudo apt-get install mysql-server-5.6
La commande supprimera l’ancienne version de MySQL par la même occasion.
PHP Storm change le propriétaire des fichiers
Rendez-vous dans PHPStorm :
Settings > Appearance & Behavior > System Settings
Décochez la case « safe write »
il manque pour installer composer :
sudo apt-get install php5-intl
Merci du retour il est désormais dans l’article !
et également :
php5enmod mcrypt
Bonjour et merci beaucoup pour cet article !
C’est exactement ce que je cherchais 🙂
Bonjour,
Merci pour ce tuto très clair !
Je sollicite votre aide. Tout me parait ok mais lorsque j’accède à l’url pour faire l’install, j’ai une page blanche avec une erreur :
Autoload error
glob() returned error while searching in ‘/var/www/vhosts/mondossier.fr/httpdocs/app/code/*/*/cli_commands.php’
Je me casse la tête dessus et ne comprends pas cet erreur. J’en appel à votre aide ^^
Merci beaucoup
Merci pour ton commentaire 🙂
Quelle est ta version de PHP ?
Je suis sur :
PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:34:46)
Merci pour cette réactivité légendaire !
Essaye d’installer PHP 5.6, si ca corrige ton problème je mettrai à jour le tuto.
J’ai trouvé l’info sur ce lien : https://community.magento.com/t5/Installing-Magento-2/Install-problem-glob/td-p/22307
Bonjour,
Je dépasse un peu le cadre de cet article très utile mais je me pose des questions sur le rôle et l’importance de composer dans la personnalisation d’une installation Magento 2.
Je suis habituée aux versions précédentes de Magento et je m’interroge sur le type d’installation à utiliser. Il existe une version sans composer mais je me demande quelles seront les limites que je risque de rencontrer par la suite si j’utilise cette version. Je vais avoir besoin d’ajouter des modules, de personnaliser le thème et de faire de petits développements. Est-ce que ce sera possible sans composer ?
Merci d’avance pour vos renseignements.
Oui c’est possible. Dans le cas présent. Je parle d’une installation en local pour découvrir l’outil. Sinon il est possible de télécharger la version 2.0.1 de Magento 2 et de la mettre en place. Les mises à jour seront manuelles. Il est aussi possible de passer par un outil comme vagrant ou docker
Bonjour,
Je cherche à installer Magento 2.0 directement en ligne.
J’ai transféré tous les fichiers sources (qui sont accessibles sur le site de magento à savoir : Magento-CE-2.0.2+sample_data-2016-01-28-02-39-03) via FTP et je me retrouve avec une page blanche et rien de plus.
Quelqu’un pourrait-il m’aider svp ?
En vous remerciant par avance !
Uploader les fichier ne suffira pas. Il vaut mieux avoir un accès ssh afin de suivre le tuto
Je suis sur OVH. Je viens de demander d’obtenir un accès SSH.
Je ne sais pas comment faire pour installer « composer ».
J’ai déjà installé plusieurs Magento 1.9, et je n’ai jamais eu autant de problèmes lors d’une installation. 🙁
C’est un serveur dédié ou mutualisé ?
Dans le cas d’un mutualisé je pense qu’en mettant les sources du Magento 2 téléchargées sur le site à la racine de votre FTP, vous aurez le process d’installation.
Pour ce qui est des samples datas, aucune idée de la procédure en fonctionnant de cette manière.
C’est un serveur mutualisé. Et ça m’indique tout simplement une page blanche.
Bonjour,
Je viens d’installer un magento 2.0.7 via FTP & Co sur un Performance 1 (php 5.5, update 5.6 dans le répertoire de ce magento 2) et SQL Privé (mySQL 5.7 avec 256 Mo de RAM) de chez OVH.
L’installation s’est déroulé sans problème ni alerte, avec le check initial OK.
Le front office (vierge) est rapide mais le back office, une fois connecté, semble bloqué.
Les clics sur les icônes ne donnent aucune réaction, la MAJ de la langue dans le menu Admin (le seul lien qui réagisse) est impossible car le bouton Save Account ne donne rien.
Problème de config ??? Bug de Magento ???
Qui a déjà rencontré ce problème ?
Merci de votre aide,
@COTTET j’avais le meme probleme.
Ma solution: la fonction symlink était désactivée dans php.ini
En supprimant symlink dans la ligne disable_functions= … , et après avoir relancé apache, tout est rentré dans l’ordre
Bonjour,
je souhaite installer Magento 2 en local en tant que environnement Bac à sable avant de souscrire à une plateforme chez OVH. Pourrais-tu m’indiquer les niveaux de version idéales compatibles avec la dernière mouture de Magento (PHP, MySQL, Composer, …).
Merci d’avance de ta réponse.
PS : Dans ce cas, y-a-t-il des modifications à apporter à ton tuto ?
Jack
Excellent article ça m’a bien aidé merci beaucoup
j’ai une erreur 500 quand je lance un magento 2 pb avec htaccess :
pas d’installation possible
erreur :
.htaccess: Option FollowSymLinks not allowed here
Avez vous rencontré ce type de souci…. j’avais un cas similaire avec une 1.9.3.1.. obligé de modifier le htaccess et le htaccess dans /media
Cdt
Si vous avez apache 2.4 n’oubliez pas de remplacer « Order allow,deny » & « Allow from all » PAR « Require all granted » dans le fichier .conf.
2.2 configuration:
Order allow,deny
Allow from all
2.4 configuration:
Require all granted
Source:
http://httpd.apache.org/docs/2.4/upgrading.html#access
Salut,
J’ai essayé d’installer un magento2 sur Digital Ocean avec le one-click install, le truc déjà tout fait.
J’ai beau reprendre des éléments du tuto, soit donner les bonne permissions sur les dossiers et fichiers, j’ai beau créer le fichier crontab, rien n’y fait.
Impossible de mettre à jour magento car l’erreur cron apparaît toujours et impossible aussi de synchroniser les application, car la sychronisation, le please wait, est sans fin.
C’est quoi le souci ?
Salut,
J’ai suivi toute la procédure mais avec une version php7.0
Je suis arrivé jusqu’à la fin de la procédure sans encombre.
Mais pourtant je n’arrive pas a lancer magento.
page blanche avec :
The requested URL /magento2/index.php was not found on this server.
Apache/2.4.18 (Ubuntu) Server at localhost Port 80