Dans ce guide, nous allons vous montrer comment installer Magento 2.4 avec la pile LEMP sur un VPS Ubuntu 20.04.
Magento est l'une des plateformes de commerce électronique open source les plus populaires disponibles, grâce à sa personnalisation et sa flexibilité. Il est créé à l'aide du Zend Framework et utilise MySQL comme système de gestion de base de données. Magento offre aux marchands en ligne un panier d'achat très flexible et un ensemble complet de fonctionnalités, ce qui en fait un excellent choix pour les entreprises qui souhaitent mettre en place un arrêt en ligne sans tracas.
Installer Magento 2.4 avec une pile LEMP sur Ubuntu 20.04 devrait prendre moins de 10 minutes à remplir. Commençons par le didacticiel.
Prérequis
- Un VPS Ubuntu 20.04 avec accès root activé, ou un utilisateur avec des privilèges sudo
- 4 Go de RAM ou plus
- Nginx
- MariaDB 10.4
- Elasticsearch 7.6.x car Magento 2.4 est testé avec cette version
- PHP 7.4 avec les extensions bcmath, ctype, curl, dom, gd, hash, iconv, intl, libxml, mbstring, openssl, pdo_mysql, simplexml, soap, xsl et zip activées. De plus, pour des raisons de performances, il est conseillé d'installer et d'activer l'extension opcache.
- Un nom de domaine valide pour accéder au site Web Magento 2. De plus, un certificat SSL valide est requis pour accéder au site Web via HTTPS.
Si vous n'avez pas configuré de pile LEMP (Nginx, MariaDB, PHP), pas de problème - nous expliquerons également comment les installer dans ce didacticiel.
Mise en route
Tout d'abord, nous allons devoir nous connecter à notre serveur en utilisant SSH. Vous pouvez le faire en saisissant cette commande :
ssh root@IP_Address -p Port_number
Remplacez "root" par un utilisateur disposant des privilèges sudo si nécessaire. De plus, remplacez "IP_Address" et "Port_Number" par l'adresse IP et le numéro de port SSH respectifs de votre serveur.
Une fois connecté, vous devez mettre à jour tous vos packages de système d'exploitation Ubuntu vers leurs dernières versions disponibles.
apt-get update apt-get upgrade
Une fois que tous les packages du système d'exploitation sont à jour, redémarrez votre serveur si nécessaire pour appliquer les nouvelles modifications de configuration.
Installer LEMP et Elasticsearch
LEMP est un acronyme qui décrit un système d'exploitation Linux avec Nginx, MySQL (ou MariaDB) et PHP. Il s'agit d'une pile générale d'applications et de serveurs qui peut servir de base à de nombreux progiciels. Installons LEMP sur notre VPS Ubuntu 20.04.
Installer Nginx
Si un serveur Web Apache est déjà installé sur le serveur, arrêtez le service Apache et empêchez-le de démarrer au démarrage du serveur :
systemctl stop apache2 systemctl disable apache2
Installez Nginx avec la commande suivante :
apt-get install nginx
C'est tout ce que nous devons faire avec Nginx pour l'instant.
Installer MySQL
Ensuite, nous installerons le serveur de base de données MySQL, qui sera utilisé pour stocker les données de notre site Web Magento, telles que les produits, les catégories, les clients et les commandes.
Pour les besoins de ce tutoriel, nous allons installer et utiliser MariaDB. Pour installer le serveur de base de données MariaDB, saisissez les commandes suivantes :
apt-get install software-properties-common
Nous devons ajouter une clé afin d'ajouter notre référentiel MariaDB.
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Maintenant que nous avons la clé, installons le dépôt :
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.4/ubuntu bionic main'
Mettez à jour vos référentiels APT afin que les listes de packages soient lues.
apt update
Enfin, nous pouvons installer MariaDB.
apt install mariadb-server
Une fois MariaDB installé, activez le service MariaDB pour qu'il démarre au démarrage du serveur :
systemctl enable mariadb.service
Vérifiez l'état du service MariaDB :
systemctl status mariadb.service
Il devrait fonctionner. C'est tout ce que nous devons faire avec MariaDB pour le moment.
Installer Elasticsearch
Basculez vers un répertoire dans lequel vous pouvez télécharger temporairement un fichier.
cd /opt
Téléchargeons le fichier du package Elasticsearch.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-amd64.deb
Installez-le en exécutant la commande suivante :
dpkg -i elasticsearch-7.6.1-amd64.deb
Démarrez le service Elasticsearch :
systemctl start elasticsearch
Vérifiez l'état :
systemctl status elasticsearch
Vérifiez la version et d'autres informations sur Elasticsearch :
curl -XGET 'http://localhost:9200'
Si tout semble normal jusqu'à présent, nous pouvons maintenant installer PHP.
Installer PHP 7.4
Ajoutez le PPA pour PHP 7.4 :
add-apt-repository ppa:ondrej/php
Ensuite, mettez à jour la liste des packages du système d'exploitation et installez PHP 7.4 avec la commande suivante :
apt-get update apt-get install php7.4
Installez toutes les extensions PHP requises avec la commande suivante :
apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-bcmath
Une fois les extensions PHP installées sur le serveur, installez quelques autres packages de système d'exploitation nécessaires à l'installation de Magento 2 :
apt-get install git curl software-properties-common
Ensuite, ouvrez le fichier de configuration PHP principal /etc/php/7.4/fpm/php.ini
:
nano /etc/php/7.4/fpm/php.ini
Modifiez les paramètres suivants :
file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 zlib.output_compression = On upload_max_filesize = 128M max_execution_time = 600 max_input_time = 900 date.timezone = America/Chicago
Enregistrez et fermez le fichier de configuration PHP.
Créer une base de données pour Magento 2
Sécurisez votre installation MariaDB en utilisant mysql_secure_installation
scénario. Ce script supprimera les utilisateurs anonymes, interdira la connexion root à distance et supprimera la base de données de test.
mysql_secure_installation
Nous vous recommandons de répondre à toutes les questions comme indiqué ci-dessous :
Enter current password for root (enter for none): Press [Enter] since no password is set by default Set root password? [Y/n]: N (You can set a password if you like) Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Ensuite, nous allons créer notre utilisateur MySQL et notre base de données pour notre site Web Magento 2. Connectez-vous à votre serveur MySQL avec la commande suivante et entrez votre mot de passe root MySQL lorsque vous y êtes invité :
mysql -u root -p
Pour créer une nouvelle base de données pour notre instance Magento 2, exécutez les commandes suivantes :
mysql> set global log_bin_trust_function_creators=1; mysql> CREATE USER 'magento'@'localhost' IDENTIFIED WITH mysql_native_password BY 'strongPassword'; mysql> create database magentodb; mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost'; mysql> flush privileges; mysql> quit
Assurez-vous de donner votre magento
Utilisateur MariaDB un mot de passe réel et fort.
Installer Magento 2
Nous pouvons maintenant procéder à l'installation de Magento 2. Au moment de la rédaction de cet article, la dernière version stable de Magento est la version 2.4.
Tout d'abord, rendez-vous sur le dépôt GitHub et téléchargez la dernière version de Magento avec la commande suivante :
mkdir -p /var/www/magento2/ cd /var/www/magento2/ git clone https://github.com/magento/magento2.git /var/www/magento2/
Ensuite, nous devrons installer Composer pour installer tous les composants Magento nécessaires. Vous pouvez installer Composer en exécutant simplement la commande suivante :
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
Exécutez ces commandes suivantes pour configurer composer.
cd /var/www/magento2 composer install bin/magento setup:install --base-url=http://yourdomain.com/ --db-host=localhost --db-name=magentodb --db-user=magento --db-password=strongPassword --admin-firstname=FirstName --admin-lastname=LastName [email protected] --admin-user=magentoadmin --admin-password=strong-password --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1
N'oubliez pas pour remplacer le nom de domaine , mot de passe de la base de données , nom d'utilisateur administrateur , mot de passe et l'adresse e-mail de l'administrateur en conséquence.
Une fois l'installation terminée, vous devriez recevoir le résultat suivant :
[Progress: 699 / 701]
Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/magento2/app/etc'
[Progress: 700 / 701]
Write installation date...
[Progress: 701 / 701]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1k4pc0
Nothing to import.
N'oubliez pas l'URI d'administration de Magento. Vous aurez besoin de ces informations plus tard car c'est l'URL que vous utiliserez pour vous connecter au back-end Magento.
Changer la propriété du magento2
répertoire vers www-data
avec la commande suivante :
chown -R www-data:www-data /var/www/magento2/
Créer un fichier de configuration Nginx
Créez un fichier de configuration Nginx avec votre éditeur de texte :
nano /etc/nginx/sites-available/magento2
Ajoutez ensuite ce qui suit comme contenu du fichier :
upstream fastcgi_backend { server unix:/run/php/php7.4-fpm.sock; } server { server_name yourdomain.com; listen 80; set $MAGE_ROOT /var/www/magento2; set $MAGE_MODE developer; # or production access_log /var/log/nginx/magento2-access.log; error_log /var/log/nginx/magento2-error.log; include /var/www/magento2/nginx.conf.sample; }
Assurez-vous d'avoir défini yourdomain.com
à votre nom de domaine enregistré.
Supprimez le fichier de configuration Nginx par défaut, s'il n'est pas utilisé :
rm -f /etc/nginx/sites-enabled/default
Activez le fichier de configuration Nginx nouvellement créé, puis testez la configuration Nginx et assurez-vous qu'il n'y a pas d'erreur :
ln -s /etc/nginx/sites-available/magento2 /etc/nginx/sites-enabled/magento2
nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
C'est ça! Votre serveur Web est maintenant configuré avec succès.
Installer un certificat SSL
Nous allons installer un certificat SSL gratuit de Let's Encrypt. Installez les packages requis en exécutant cette commande :
apt-get install certbot python3-certbot-nginx
Installez ensuite un nouveau certificat SSL pour votre nom de domaine, en vous assurant que yourdomain.com
est défini sur votre nom de domaine enregistré :
certbot --nginx -dyourdomain.com
-dwww.yourdomain.com
Veuillez sélectionner "2" et choisir de rediriger le trafic HTTP vers HTTPS :
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Utilisez les commandes CLI Magento 2 suivantes pour mettre à jour le base-url
Magento et le base-url-secure
valeurs :
cd /var/www/magento2/
php bin/magento setup:store-config:set --base-url="https://yourdomain.com/
"
php bin/magento setup:store-config:set --base-url-secure="https://yourdomain.com/
"
Modifiez le fichier de configuration Nginx et activez HTTP/2 :
nano /etc/nginx/sites-enabled/magento2
Remplacer :
listen 443 ssl;
Avec :
listen 443 ssl http2;
Redémarrez le service Nginx pour que les modifications prennent effet :
systemctl restart cron.service
Installer la tâche Cron
Magento nécessite une configuration de tâche cron pour de nombreuses fonctions système importantes. Créons la tâche cron suivante :
crontab -u www-data -e
Ajoutez ceci au fichier :
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
Enregistrez et fermez le fichier.
Redémarrez le service cron :
systemctl restart cron.service
C'est tout ! Magento 2 a été installé avec succès sur votre serveur.
Vous pouvez accéder au front-end de Magento sur http://yourdomain.com
:
Connectez-vous au back-end Magento 2 sur http://
, et configurez Magento selon vos besoins. Vous pouvez installer des extensions, ajouter des produits, des catégories, etc.yourdomain.com
/URI d'administration Magento
Il devient de plus en plus important d'avoir une présence en ligne dans le monde numérique d'aujourd'hui. Vous n'avez pas besoin d'être un expert en administration système Linux lorsque vous utilisez notre hébergement Magento géré - nous allons tout configurer pour vous et le maintenir, le tout inclus avec notre VPS. Nous pouvons même optimiser votre serveur ainsi que répondre à toutes les demandes que vous pourriez avoir. Vous aurez toujours le contrôle total de votre serveur, mais vous n'aurez plus jamais à vous soucier de quoi que ce soit.
Nous espérons que ce tutoriel vous a aidé à installer Magento 2 sur votre VPS Ubuntu 20.04. Si c'est le cas, pensez à partager ce message sur les réseaux sociaux avec nos raccourcis de partage, ou laissez un commentaire ci-dessous avec toute question ou suggestion que vous pourriez avoir. Merci.