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 :)
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.