Image

Dans ce guide, nous allons installer l'application Magento sur un serveur virtuel, pour ne pas faire le même travail à chaque fois, nous prendrons l'assemblage comme un serveur vps pile Web sur Debian 12. Cet assembly est spécialement créé pour déployer rapidement des applications Web nécessitant PHP et mariadb. Téléchargeons la dernière version sur le site officiel et installons-la via un navigateur. Tous les services nécessaires sont déjà installés et configurés. Vous pouvez également commander un serveur vps avec magento préinstallé. Il vous suffit de changer votre login et votre mot de passe pour l'administration.
1. Préparons le serveur
Version 2.4.6-p3

1.1 Installez les modules php nécessaires

apt install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev

1.2 Créons une base de données et un utilisateur

mariadb -u root

CREATE DATABASE magento;
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

1.3 Installer le compositeur

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --2.2
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

1.4 Télécharger et installer ElasticSearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb.sha512
shasum -a 512 -c elasticsearch-8.11.3-amd64.deb.sha512
dpkg -i elasticsearch-8.11.3-amd64.deb

1.4.1 Ajouter un fichier avec des paramètres

nano /etc/elasticsearch/jvm.options.d/memory.options

-Xms512m
-Xmx784m

1.4.2 Changeons l'option

nano /etc/elasticsearch/elasticsearch.yml

xpack.security.enabled: false

1.4.3 Commençons le service

nano /etc/elasticsearch/elasticsearch.yml

systemctl enable elasticsearch --now
systemctl start elasticsearch.service

1.5 Installer et configurer Redis

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt update
apt install redis

1.5.1 Définir un mot de passe pour le service Redis

redis-cli

acl setuser default >Your_Redis_Password
> OK
AUTH Your_Redis_Password
> OK

1.6 Préparons tout pour l'installation de magento

1.6.1 Inscrivez-vous sur le site pour recevoir les clés

https://account.magento.com/
https://commercemarketplace.adobe.com/customer/accessKeys/

Créons un fichier avec le contenu suivant

nano ~/.config/composer/auth.json 

{
"http-basic": {
"repo.magento.com": {
"username": "public_key",
"password": "private_key"
}

}
}

1.6.2 Créons un répertoire

mkdir /var/www/domain.tld -p

1.6.3 Allons-y et commençons l'installation

cd /var/www/domain.tld
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition

Une fois terminé, vous recevrez un message avec l'adresse sur le panneau d'administration, nous en aurons besoin un peu plus tard
[SUCCESS]: Magento Admin URI: /admin_1tbbc0

1.6.4 Déplacez tous les dossiers et fichiers vers la racine du dossier domain.tld

cd /var/www/domain.tld/project-community-edition
mv /var/www/domain.tld/project-community-edition/* /var/www/domain.tld/
mv /var/www/domain.tld/project-community-edition/.* /var/www/domain.tld/

1.6.5 Modifions les directives dans le fichier nginx

sed -i 's/php-fpm:9000/fastcgi_backend/g' /var/www/magento/nginx.conf.sample

1.6.6 Remplacer la ligne dans le fichier de configuration

nano /var/www/magento/app/etc/di.xml

Default
^10\.[2-6]\.
Replace
^10\.([2-9]|10|11)\.


1.6.7 Installons Magento

cd /var/www/domain.tld

bin/magento setup:install --base-url=http://magento.example.com --use-secure=1 --base-url-secure=https://magento.example.com --use-secure-admin=1 --db-host=localhost --db-name=magento --db-user=magentouser --db-password=Your_password2 --admin-firstname=myuser --admin-lastname=Lastname --admin-email=myuser@example.com --admin-user=myuser --admin-password=admin_password0 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --elasticsearch-host=http://127.0.0.1 --elasticsearch-port=9200 --session-save=redis --session-save-redis-db=0 --session-save-redis-password=Your_Redis_Password --cache-backend=redis --cache-backend-redis-db=2 --cache-backend-redis-password=Your_Redis_Password --page-cache=redis --page-cache-redis-db=4 --page-cache-redis-password=Your_Redis_Password

Une fois l'installation terminée, vous recevrez un message

.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1tbbc0
Nothing to import.

1.6.8 Configurons cron

php bin/magento cron:install

1.6.9 Attribuons des droits

chown -R www-data:www-data /var/www/domain.tld

1.7 Modifions les paramètres php8.2-fpm

sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini

systemctl restart php8.2-fpm

1.8 Regardons le fichier de configuration principal de nginx:

nano /etc/nginx/conf.d/default.conf

upstream fastcgi_backend {
server unix:/run/php/php8.2-fpm.sock;
}

server {
# Redirect any http requests to https
listen 80;
listen [::]:80;
server_name magento.example.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name magento.example.com;

set $MAGE_ROOT /var/www/domain.tld;
include /var/www/domain.tld/nginx.conf.sample;
client_max_body_size 25m;

access_log /var/log/nginx/magento.access.log;
error_log /var/log/nginx/magento.error.log;

# TLS configuration
ssl_certificate /etc/ssl/domain_fullchain.pem;
ssl_certificate_key /etc/ssl/domain_privkey.pem;
ssl_trusted_certificate /etc/ssl/domain_chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Redémarrons le service:

systemctl restart nginx

C'est fait, vous pouvez maintenant vous rendre sur https://magento.example.com et tester l'application:

Vous pouvez visualiser le lien vers la section administrative avec la commande

php /var/www/magento/bin/magento info:adminuri

L'installation est terminée, nous avons fourni ci-dessous des solutions aux problèmes courants utilisant les commandes d'application.

Par défaut, l'authentification à deux facteurs par email est activée pour la section administrative ; pour la désactiver, utilisez les commandes suivantes:

php /var/www/domain.tld/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
php /var/www/domain.tld/bin/magento module:disable Magento_TwoFactorAuth
php /var/www/domain.tld/bin/magento setup:di:compile
php /var/www/domain.tld/bin/magento c:c

Pour afficher le domaine configuré, utilisez la commande

bin/magento config:show web/secure/base_url

Pour changer de domaine

php bin/magento setup:store-config:set --base-url="http://new-domain.tld/"

ou pour https

php bin/magento setup:store-config:set --base-url-secure="https://new-domain.tld/"

Si les styles ne s'affichent pas correctement, utilisez ces commandes:

cd /var/www/domain.tld
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex



Aucun commentaire pour l'instant