Installer Magento 2

Bonjour à tous, dans ce tutoriel, on va voir comment Installer Magento2 !

Pour ce tutoriel, je suppose que vous êtes sous Linux (ici Ubuntu) mais si vous êtes sur Windows ou sur Mac les principes restent les mêmes, il vous suffira juste d'adapter.
Comme éditeur, j'ai utilisé vim (mais vous pouvez aussi le faire avec n’importe quelle éditeur de texte). Si vous désirez l'installer utilisez la commande suivante:


apt-get install vim

Bien sur, on suppose également pour ce tutoriel que vous avez déjà installé apache2, php avec les recommandations de magento (php_curl, activer l'url rewrite...).
Si cela peut vous aider, j'ai créer un container docker qui vous aidera à faire tourner ce tutoriel ici (last update le 27 octobre 2020): https://github.com/pierrefay/magento2-docker-compose/ EDIT(27 OCtobre 2020): pour l'installer allez voir la doc, sincérement dans ce tutoriel vous avez l'idée générale mais ca marchera pas directement, ca évolue trop vite et je peux pas mettre cet article à jour sans arret. Vous prenez pas la tete, en local utilisez docker.

La configuration requise minimale pour installer magento2 :

Pour pouvoir installer magento2 il vous faut :
- Être sous Linux (Ubuntu, RHEL, CentOS, Debian...)
- Avoir installé Apache 2.4
- Avoir installé MySQL 8 (ou mariadb)
- Avoir installé PHP 7.4

- avoir installé une version récente de elasticsearch Avec les extensions suivantes :
PDO/MySQL, MySQLi, mbstring, mcrypt, mhash, simplexml, DOM, curl, gd2 ou/et ImageMagick 6.3.7 (ou supérieur), soap, curl, intl, bcmatch, iconv


 sudo add-apt-repository ppa:ondrej/php
sudo apt-get -y update
 sudo apt-get install -y php7.1 libapache2-mod-php7.1 php7.1-common php7.1-gd php7.1-mysql php7.1-curl php7.1-intl php7.1-xsl php7.1-mbstring php7.1-zip php7.1-bcmath php7.1-iconv php7.1-soap

Les requirements évoluent réguliérement, faites un tour ici pour vérifier tout ce qu'il vous faut : https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements-tech.html - Avoir installé un serveur SMTP ou un Mail Transfer Agent (MTA)
personnellement j'aime bien exim4

Maintenant que tout est ok sur votre machine, entrons dans le vif du sujet...

Installer le nom de domaine www.magento2.lan et creer mon vhost :

Faites pointer votre nom de domaine vers votre local, rajoutez le nom de domaine dans votre fichier hosts

vim /etc/hosts

et ajoutez la ligne suivante : (ici le nom de domaine est www.magento2.lan)

127.0.0.1 www.magento2.lan

Rajoutez ensuite le vhost :

vim /etc/apache2/sites-available/magento2

Editer votre fichier vhost comme ceci :

<VirtualHost *:80>
    ServerName www.magento2.lan
    ServerAlias magento2.lan
    DocumentRoot /var/www/magento2
    <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 ensuite votre vhost et redémarrez (ou recharger avec service apache2 reload) apache:

a2ensite magento2
service apache2 restart

N'oubliez pas d'activer le mode rewrite :

a2enmod rewrite
service apache2 restart

Enregistrez et fermez votre navigateur ( echap > :wq )

Créer la base de donnée magento2

Tout d'abord on va lister nos bases de données et on va en créer une qui s'appelle magento2 :

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> create database magento2;
Query OK, 1 row affected (0.00 sec)

Installer les fichiers magento2

Pour cette partie, je suppose que GIT est installé sur votre pc. Si il ne l'est pas voici comment l'installer :

apt-get install git

Pour installer magento2 à partir du repository GIT, vous pouvez lancer les commandes suivantes :

cd /var/www/
git clone https://github.com/magento/magento2.git

Installez ensuite composer si c'est pas encore fait puis installez magento

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
cd magento2 && composer install

Voilà vos fichiers sont installés !

Donnez la possibilité d’écrire dans les dossiers var, media, pub

Modifiez les droits (comme un bourrin) sur votre serveur pour donner l’accès en écriture au système sur les dossiers pub/media/, var/, pub/static et app/etc (pour voir vos css lors de l'installation par exemple).

find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +


pour plus de sécurité, ne faites pas 777 sur vos machines de prod hein !! ^^
Voilà vous pouvez maintenant utiliser l'installer magento2 !
Si apres l'installation vous avez des CSS qui ne sont pas présent, la mise en page de magento est cassé...vous avez eu un problème de droits quelque part dans ces dossiers et magento2 n'a pas pu créer les fichiers CSS (ou les dossiers des thèmes). Changez donc les droits, supprimer le fichier app/etc/local.xml et recommencez l'installation !

Utiliser l'installer magento2 !

Vous pouvez maintenant vous connectez avec votre navigateur sur www.magento2.lan, suivez donc la procédure d'installation :

Ici c'est du "clic clic", vous rentrez les infos nécessaire et ca devrait fonctionner :)

install04

ERREUR : "Host 'apache2.dockerapache2mysql_default' is not allowed to connect to this MySQL server"
2 cas possibles :
- vous avez pas mis le bind adresse de mysql à 0.0.0.0 dans votre fichier my.cnf

root@51ca7e014513:/$ vim /etc/mysql/mysql.conf.d/mysqld.cnf 
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0

- l'utilisateur mysql n'a pas les droits sur votre base pour se connecter à distance:

mysql> CREATE USER 'pfay'@'%' IDENTIFIED BY 'pfay123';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'pfay'@'%' IDENTIFIED BY 'pfay123';              
Query OK, 0 rows affected, 1 warning (0.00 sec)

Installer les samples data pour magento2 !

On va dabord aller dans notre repertoire de magento2, à la racine et on va cloner le projet magento2-sample-data, on va ensuite mettre les bons droits sur le dossier puis on va exécuter le script qui permet de créer les liens avec les samples datas. On lance ensuite l'update et c'est tout...magento2 est installé avec les samples datas!
Voici comment faire :

root@e63dc125d882:/var/www/html/magento2$ git clone https://github.com/magento/magento2-sample-data.git
root@e63dc125d882:/var/www/html/magento2$ chown www-data:www-data -R magento2-sample-data/            
root@e63dc125d882:/var/www/html/magento2$ php -f magento2-sample-data/dev/tools/build-sample-data.php -- --ce-source="./"                                
root@e63dc125d882:/var/www/html/magento2$ ./bin/magento setup:upgrade

Voilà félicitation à vous qui avez installé Magento2 ! Maintenant vous allez pouvoir faire la suite des tutoriels pour apprendre a développer sous Magento2 !

N'hésitez pas également à poser vos questions dans les commentaires.
Bon courage à tous pour la suite des tutoriels.
Les livres qui peuvent vous aider :
  • Livre Magento 2 Developer's Guide by Branko
  • Livre Magento 2 Cookbook
  • Livre Mastering Magento2 Second Edition
Questions sur cette leçon
Pas de questions pour cette leçon. Soyez le premier !

Vous devez etre connecté pour demander de l'aide sur une leçon.