Pour le tutoriel, j’utilise une machine virtuelle composée de 4 processeurs et de 4 Go de mémoire vive sous Virtualbox.
Pré-requis
- Disposer d’un serveur sous Linux Debian 8
- Avoir une connexion au serveur par SSH ou par un Terminal
Objectifs
Installer Magento 2 depuis le dépôt GIT officiel.
Tutoriel
Installation des composants indispensables
Pour installer Magento 2, il est nécessaire d’avoir les composants suivants :
- Curl
- Apache 2
- MariaDB
- PHP 7
- Git
- Node.js
- Grunt
Lancer un Terminal ou une connexion SSH, se connecter avec l’utilisateur « root ».
PHP 7 n’étant pas dans les dépôts officiels de Debian, il est nécessaire d’ajouter le dépôt maintenu par dotdeb.org. Pour cela, lancer les commandes suivantes :
echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list wget -O- https://www.dotdeb.org/dotdeb.gpg | apt-key add - apt update
S’authentifier en tant qu’administrateur du serveur :
su nom_de_l'administrateur
Installer les composants :
sudo apt-get install -y curl git apache2 mariadb-server mariadb-client php7.0 php-curl php7.0-gd imagemagick php7.0-intl php7.0-intl php7.0-xsl php7.0-mbstring libapache2-mod-php7.0 mcrypt php7.0-mcrypt php-xml php-soap php7.0-zip php7.0-mysql
Installer Node.js :
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs
Finisser par l’installation de Grunt :
sudo npm install -g grunt-cli
Installer Composer :
php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"
Visiter le site (Composer Public Keys / Signatures) suivant et copier la clé SHA-384.
Coller la clé SHA-384 à la place de sha_384_string dans la commande ci-dessous :
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === 'sha_384_string') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"
Lancer la commande pour terminer l’installation :
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
Configuration des composants installés
Activer le mode rewrite d’Apache et redémarrer le service :
sudo a2enmod rewrite && sudo service apache2 restart
Configurer MariaDB :
sudo mysql_secure_installation
Ne pas oublier de créer un utilisateur et une base de données dans MySQL, voici la commande de création d’un utilisateur et d’une base de données :
CREATE USER 'nom_de_l'utilisateur'@'%' IDENTIFIED BY '***';GRANT USAGE ON *.* TO 'nom_de_l'utilisateur'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS<i>nom_de_la_bdd</i>
;GRANT ALL PRIVILEGES ON<i>nom_de_la_bdd</i>
.* TO 'nom_de_l'utilisateur'@'%';
Changer le propriétaire du dossier /var/www/ et modifier les droits :
sudo chown -R www-data:www-data /var/www/ sudo chmod -R 775 /var/www/
Installation de Magento 2
Au préalable, créer un nouvel utilisateur
sudo adduser nom_de_l'utilisateur
Ajouter l’utilisateur précédemment créé dans le groupe www-data :
sudo usermod -g www-data nom_de_l'utilisateur
Changer d’utilisateur :
su nom_de_l'utilisateur
Créer un dossier boutique dans /var/www/ :
mkdir /var/www/nom_du_dossier && cd /var/www/nom_du_dossier/
Créer le vhost pour Apache :
sudo nano /etc/apache2/sites-available/nom_du_fichier.conf sudo a2ensite nom_du_fichier.conf && sudo service apache2 restart
Installer Magento 2 depuis Git :
cd /var/www/nom_du_dossier/ && git clone -b 2.1 https://github.com/magento/magento2.git .
Modifier le fichier composer.json et remplacer la ligne :
"fabpot/php-cs-fixer": "~1.2"
par :
"friendsofphp/php-cs-fixer": "~2.0"
Lancer la commande :
composer update
Attribuer les droits aux différents dossiers :
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} && chmod -R 775 app/etc/
Ouvrir le site dans un navigateur pour finaliser l’installation.