GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer Magento 2 avec Varnish et Apache sur Ubuntu 16.04

Magento est un système de gestion de contenu gratuit et open source construit en PHP, Zend framework et base de données MySQL. Il s'agit d'une application Web de commerce électronique très populaire qui s'exécute sur de nombreuses applications open source telles qu'Apache, MySQL et bien d'autres. Magento est livré avec de nombreux modules intégrés qui sont utilisés pour ajouter plus de fonctionnalités.

Varnish Cache est un puissant accélérateur d'applications Web open source également connu sous le nom de proxy inverse HTTP de mise en cache. Il est utilisé pour accélérer votre site Web en mettant en cache une copie d'une page Web lors de la première visite d'un utilisateur. Magento et Varnish est une combinaison connue pour augmenter considérablement les performances du site. Varnish est intégré par défaut dans Magento 2. Il vous suffira de faire quelques changements de configuration pour le faire fonctionner.

Dans ce didacticiel, nous allons apprendre à installer Magento 2 avec Varnish en tant que cache de page complète sur le serveur Ubuntu 16.04.

Exigences

  • Un serveur exécutant Ubuntu 16.04.
  • Apache, PHP et MariaDB.
  • Un utilisateur non root avec des privilèges sudo configurés sur votre serveur.

1 Mise en route

Avant de commencer, il est recommandé de mettre à jour votre système avec le dernier package en exécutant la commande suivante :

sudo apt-get update -y
sudo apt-get upgrade -y

Une fois que votre système est à jour, redémarrez votre système et connectez-vous avec l'utilisateur sudo.

2 Installer le serveur LAMP

Magento ne fonctionnera pas sans installer la pile LAMP (Apache, PHP, MariaDB). Tout d'abord, installez le serveur Web Apache et vernis en exécutant la commande suivante :

sudo apt-get install apache2 varnish -y

Après avoir installé Apache, démarrez le service Apache et activez-le au démarrage en exécutant la commande suivante :

sudo systemctl start apache2
sudo systemctl enable apache2

Magento est écrit en langage PHP, vous devez donc également installer PHP avec toutes les bibliothèques sur votre système. Vous pouvez tous les installer en exécutant la commande suivante :

sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-mysql php7.0-mcrypt php7.0-xsl php-imagick php7.0-gd php7.0-cli php-pear php7.0-intl php7.0-curl php7.0-zip php7.0-gd php7.0-soap php7.0-xml -y

Après avoir installé PHP avec toutes les bibliothèques requises, vous devrez modifier quelques paramètres PHP par défaut. Vous pouvez le faire en éditant le fichier php.ini :

sudo nano /etc/php/7.0/cli/php.ini

Modifiez les lignes suivantes :

memory_limit = 512
upload_max_filesize = 128M
zlib.output_compression = on
max_execution_time = 15000

Enregistrez et fermez le fichier lorsque vous avez terminé.

3 Installer et configurer MariaDB

Magento utilise MariaDB comme base de données. Vous devrez donc l'installer sur votre serveur. Vous pouvez l'installer en exécutant simplement la commande suivante :

sudo apt-get install mariadb-server -y

Après avoir installé MariaDB, démarrez le service MariaDB et activez-le au démarrage en exécutant la commande suivante :

sudo systemctl start mysql
sudo systemctl enable mysql

Par défaut, MariaDB n'est pas sécurisée, vous devrez donc la sécuriser. Vous pouvez le sécuriser en exécutant la commande suivante :

sudo mysql_secure_installation

Répondez à toutes les questions comme indiqué ci-dessous :

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n

 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Ensuite, connectez-vous au shell MariaDB avec la commande suivante :

mysql -u root -p

Entrez votre mot de passe root lorsque vous y êtes invité, puis créez une base de données pour Magento avec la commande suivante :

MariaDB [(none)]>CREATE DATABASE magento_db;

Après avoir créé la base de données pour Magento, créez un nom d'utilisateur et un mot de passe avec la commande suivante :

MariaDB [(none)]>CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';

Ensuite, accordez des privilèges à la base de données Magento avec la commande suivante :

MariaDB [(none)]>GRANT ALL PRIVILEGES ON magento_db.* TO 'magento'@'localhost';

Ensuite, exécutez la commande FLUSH PRIVILEGES pour recharger les privilèges :

MariaDB [(none)]>FLUSH PRIVILEGES;

Enfin, quittez la console MariaDB avec la commande suivante :

MariaDB [(none)]>\q

4 Télécharger Magento

Tout d'abord, vous devrez télécharger la dernière version de Magento depuis leur site officiel.

Après avoir téléchargé Magento, extrayez le fichier zip téléchargé dans le répertoire racine du web apache avec la commande suivante :

sudo mkdir /var/www/html/magento/
sudo unzip magento2-develop.zip -d /var/www/html/magento

Ensuite, changez le propriétaire du répertoire magento et donnez-lui la permission appropriée :

sudo chown -R www-data:www-data /var/www/html/magento
sudo chmod -R 777 /var/www/html/magento

Ensuite, vous devrez installer Composer sur votre système. Composer est un gestionnaire de dépendances utilisé pour installer toutes les dépendances PHP requises. Vous pouvez télécharger et installer le binaire Composer avec la commande suivante :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer

Ensuite, exécutez la commande composer pour installer toutes les dépendances requises par Magento :

cd /var/www/html/magento
sudo composer install

Une fois toutes les dépendances installées, vous pouvez procéder à la configuration d'Apache pour Magento.

5 Configurer Apache pour Magento

Ensuite, vous devrez créer un fichier d'hôte virtuel Apache pour Magento. Créez un nouveau fichier de configuration Apache nommé magento.conf avec la commande suivante :

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

Ajoutez les lignes suivantes :

<VirtualHost *:8080>
ServerAdmin [email protected]
DocumentRoot /var/www/html/magento
ServerName 192.168.15.189
ServerAlias www.example.com
<Directory "/var/www/html/magento/">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/magento-error_log
CustomLog /var/log/apache2/magento-access_log common
</VirtualHost>

Enregistrez le fichier, puis activez votre hôte virtuel avec le module de réécriture Apache avec la commande suivante :

sudo a2ensite magento
sudo a2enmod rewrite

Ensuite, vous devrez également changer le port d'écoute d'Apache de 80 à 8080. Parce que nous allons réserver le port 80 pour le vernis. Pour ce faire, ouvrez le fichier ports.conf :

sudo nano /etc/apache2/ports.conf

Modifiez le fichier comme indiqué ci-dessous :

Listen 8080

Enfin, redémarrez le service Apache pour appliquer ces modifications avec la commande suivante :

sudo systemctl restart apache2

6 Accéder à l'assistant d'installation Web de Magento

Magento est maintenant installé, il est maintenant temps d'installer Magento via un navigateur Web.

Pour cela, ouvrez votre navigateur web et tapez l'URL http://192.168.15.189:8080, vous devriez voir la page suivante :

Maintenant, acceptez les termes et conditions puis cliquez sur le bouton "Accepter et configurer Magento", vous devriez voir la page suivante :

Vérifiez tous les Readiness et cliquez sur le bouton "Suivant", vous devriez voir la page suivante :

Fournissez les détails de votre base de données, comme le nom de la base de données, le nom d'utilisateur de la base de données et le mot de passe, puis cliquez sur le bouton "Suivant", vous devriez voir la page suivante :

Fournissez les détails de votre site Web et cliquez sur le bouton "Suivant", vous devriez voir la page suivante :

Personnalisez Magento selon vos besoins et cliquez sur le bouton "Suivant", vous devriez voir la page suivante :

Fournissez vos informations d'utilisateur administrateur et cliquez sur le bouton "Suivant", vous devriez voir la page suivante :

Maintenant, cliquez sur le bouton "Installer maintenant" pour lancer l'installation de Magento. Une fois l'installation terminée, vous devriez voir la page suivante :

Remarque :N'oubliez pas votre URL d'administration Magento :http://192.168.15.189/admin_wczta4. Cela servira à accéder à l'administration de Magento.

Maintenant, cliquez sur le bouton "Lancer l'administration de Magento", vous devriez voir la page de connexion de Magento comme ci-dessous :

Fournissez vos informations d'identification d'administrateur Magento et cliquez sur le bouton "Connexion", vous devriez voir le tableau de bord Magent-o comme ci-dessous :

Depuis votre tableau de bord d'administration Magento, cliquez sur le bouton STORES (à gauche)> Configuration> AVANCÉ> Système> Full Page Cache , puis désélectionnez utiliser la valeur système et sélectionnez Varnish Cache dans la liste des applications de mise en cache, enregistrez la configuration, cliquez sur le lien Varnish Configuration et cliquez sur le bouton Export VCL for Varnish 4 (cela exportera le fichier vernis.vcl dans /var/www /html/magento/var directoy) comme indiqué ci-dessous :

Enfin, videz le cache de Magento avec la commande suivante :

cd /var/www/html/magento
sudo php bin/magento cache:flush

Une fois que vous avez terminé, vous pouvez procéder à la configuration du vernis.

6 Configurer le vernis

Magento est maintenant installé et configuré. Il est temps de configurer le vernis.

Tout d'abord, supprimez le fichier /etc/varnish/default.vcl et créez un lien symbolique à partir de la configuration de vernis exporté :

sudo rm -rf /etc/varnish/default.vcl
sudo ln -s /var/www/html/magento/var/varnish.vcl /etc/varnish/default.vcl

Ensuite, vous devrez créer un fichier de service systemd pour le vernis. Vous pouvez le faire en copiant vernis.service de /lib/systemd/system/ vers le répertoire /etc/systemd/system/ :

sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/

Après avoir copié ce fichier, vous devrez apporter quelques modifications au fichier vernis.service :

sudo nano /etc/systemd/system/varnish.service

Effectuez les modifications suivantes :

[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd

[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
ExecReload=/usr/share/varnish/reload-vcl
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true

[Install]
WantedBy=multi-user.target

Enregistrez le fichier lorsque vous avez terminé, puis redémarrez le service de vernis avec la commande suivante :

sudo systemctl daemon-reload
sudo systemctl reload varnish.service

Si tout fonctionne correctement, vous devriez pouvoir vous connecter à votre back-end Magento en saisissant l'URL suivante sur votre navigateur Web :

http://192.168.15.189/admin_wczta4

Vous pouvez également vérifier si le vernis est activé ou non en exécutant la commande suivante :

curl -I http://192.168.15.189/admin_wczta4

Vous devriez voir que le vernis est activé :

Date: Fri, 07 Jul 2017 17:10:01 GMT
Server: Apache/2.4.18 (Ubuntu)
Set-Cookie: store=default; expires=Sat, 07-Jul-2018 17:10:03 GMT; Max-Age=31536000; path=/; HttpOnly
Set-Cookie: PHPSESSID=irp2k8cmrhct0dfh18qk7ap0i4; expires=Fri, 07-Jul-2017 18:10:04 GMT; Max-Age=3600; path=/; domain=192.168.15.189; HttpOnly
Expires: Thu, 07 Jul 2016 17:10:04 GMT
Cache-Control: max-age=0, must-revalidate, no-cache, no-store
Pragma: no-cache
Location: http://192.168.15.189/admin_wczta4/?SID=irp2k8cmrhct0dfh18qk7ap0i4
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Content-Length: 0
Content-Type: text/html; charset=UTF-8
X-Varnish: 2
Age: 0
Via: 1.1 varnish-v4
Connection: keep-alive

Toutes nos félicitations! vous avez configuré avec succès Magento avec Varnish sur le serveur Ubuntu 16.04.


Ubuntu
  1. Comment installer Apache sur Ubuntu 18.04

  2. Comment installer et configurer Nextcloud avec Apache sur Ubuntu 18.04

  3. Comment installer Joomla avec Apache sur Ubuntu 18.04

  4. Comment configurer Opencart avec LAMP (PHP, Apache, Mariadb) sur Ubuntu 20.04

  5. Comment installer et configurer Varnish sur Ubuntu 20.04 ?

Comment installer et configurer le pare-feu UFW sur Ubuntu 20.04

Comment installer Lighttpd avec PHP et MariaDB sur Ubuntu 15.04

Comment installer Lighttpd avec MariaDB et PHP sur Ubuntu 18.04 LTS

Comment configurer l'hôte virtuel Apache sur Ubuntu 20.04 LTS

Comment installer et configurer Apache Spark sur Ubuntu/Debian

Comment installer Magento 2.4.3 sur Ubuntu 20.04 avec LAMP