Dans ce guide je vais vous présenter l’installation et la configuration d’un serveur privé virtuel (VPS) avec une stack technologique complète comprenant Apache, Certbot, PHP, MySQL, Elasticsearch 7, Redis et Composer. Que vous soyez développeur, administrateur système ou simplement passionné par l’infrastructure web, ce guide vous permettra de mettre en place un environnement robuste et performant.
Introduction
Pour réaliser ce guide nous allons utiliser un serveur Linux distribution Ubuntu 24.04, un accès en SSH, un terminal, et quelques outils comme Nano ou Curl. L’utilisateur du système est ubuntu.
Les bases de Nano, l’éditeur de texte fourni avec Ubuntu (vraiment la base) :
Ctrl + w = rechercher
Ctrl + x = quitter (Y pour sauvegarder puis entrée)
Pour suivre ce guide il est préférable que vous ayez des notions de Linux et de la ligne de commande.
Notions de base des permissions et propriétés sur Linux :
chown : cette commande permet d’attribuer la propriété et de mettre dans un groupe un fichier ou dossier.
Exemple : sudo chown -R
ubuntu:www-data
/var/www/html
Ici on « donne » le dossier html qui se trouve dans /var/www de manière récursive (-R, c’est à dire le dossier et tous ses sous-éléments) à l’utilisateur ubuntu et au groupe www-data.
Selon les permissions l’utilisateur ubuntu et les utilisateurs dans le groupe www-data auront le droit de faire certaines choses dans ce dossier.
chmod : cette commande attribue des permissions à un fichier ou dossier.
Exemple : chmod -R 750 /var/www/html
Une permission 750 va donner ceci :
1er chiffre : utilisateur
2ème chiffre : groupe
3ème chiffre : autres
7 : lecture, écriture, execution
5 : lecture, execution
0 : rien
Lecture (r) : Permet de lire le contenu d’un fichier ou de lister les fichiers dans un répertoire.
Écriture (w) : Permet de modifier un fichier ou d’ajouter/supprimer des fichiers dans un répertoire.
Exécution (x) : Permet d’exécuter un fichier (si c’est un programme) ou d’accéder à un répertoire.
Ici on attribue la permission 750 au dossier html ainsi qu’à tout ce qu’il contient (-R).
Si on se base sur l’exemple précédent alors ubuntu aura un droit total (lecture, écriture, execution)
Les utilisateurs présents dans le groupe www-data auront un droit de lecture et d’execution mais ne pourront pas écrire (sur les fichiers ou créer des fichiers dans le dossier).
Les autres n’auront aucun pouvoir (autres utilisateurs système, visiteurs du site web, …).
Une permission 750 peut également être définie en utilisant la notation symbolique : chmod -R u=rwx,g=rx,o= /var/www/html
sudo : commande qui permet une élévation des privilèges. Il faut néanmoins que notre utilisateur fasse partie du groupe sudo (sudo est un groupe système par défaut sur une distribution comme Ubuntu).
Pour faire simple :
j’ai le dossier /var/www/monsite qui appartient à root et fait partie du groupe root (root:root), je souhaite qu’il m’appartienne et fasse partie du groupe www-data, je tape la commande :chown -R ubuntu:www-data /var/www/monsite
le terminal me retourne une erreur permission denied
, alors je tape :sudo chown -R ubuntu:www-data /var/www/monsite
là ma commande passera.
Attention : La commande `sudo` permet d’exécuter des commandes avec les privilèges du superutilisateur.
Il est crucial de l’utiliser avec précaution, car des commandes mal exécutées peuvent affecter la stabilité et la sécurité du système.
Ne vous amusez pas à faire un sudo rm -rf /
par exemple 🙂
Avant de plonger dans les commandes et configurations, faisons un rapide tour d’horizon des outils que nous allons installer :
- Apache : Un serveur web puissant et flexible, largement utilisé pour héberger des sites web.
- Certbot : Un outil de gestion des certificats SSL/TLS pour sécuriser tes sites avec HTTPS.
- PHP : Un langage de script côté serveur, essentiel pour de nombreuses applications web comme Magento ou WordPress.
- MySQL : Un système de gestion de base de données relationnelle, parfait pour stocker tes données.
- Elasticsearch 7 : Un moteur de recherche et d’analyse distribué, idéal pour des recherches rapides et complexes.
- Redis : Un magasin de données en mémoire, utilisé pour le caching et l’accélération des performances.
- Composer : Un gestionnaire de dépendances pour PHP, facilitant l’installation et la mise à jour des bibliothèques.
Installation et configuration d’Apache avec ModSecurity
Mise à jour du système
Avant toute installation, il est essentiel de mettre à jour le système pour s’assurer que tous les paquets sont à jour et sécurisés.
sudo apt update && sudo apt upgrade -y
sudo reboot
Installation d’Apache
Apache est l’un des serveurs web les plus populaires. Il est connu pour sa flexibilité et sa robustesse.
sudo apt install apache2 -y
Installation et activation de ModSecurity
ModSecurity est un pare-feu applicatif web (WAF) qui aide à protéger le serveur contre diverses attaques web.
sudo apt install libapache2-mod-security2 -y
sudo a2enmod security2
Configuration initiale de ModSecurity
On commence par copier le fichier de configuration recommandé et le modifier pour activer le moteur de détection.
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo nano /etc/modsecurity/modsecurity.conf
Dans le fichier ouvert, modifie la ligne suivante pour activer ModSecurity :
SecRuleEngine On
Modifier les permissions des logs Apache
Pour assurer que Apache puisse écrire correctement dans les logs, il faut ajuster les permissions.
sudo chown -R www-data:www-data /var/log/apache2/
sudo chmod -R 750 /var/log/apache2/
Tester la configuration Apache
Avant de redémarrer Apache, il est crucial de vérifier que la configuration est correcte.
sudo apache2ctl configtest
sudo systemctl restart apache2
Activation des modules Apache nécessaires
Pour une meilleure gestion des URLs on active la réécriture.
sudo a2enmod rewrite
Nous allons ensuite modifier le fichier de configuration du site Apache par défaut :
sudo nano /etc/apache2/sites-available/000-default.conf
On ajoute les lignes suivantes :
# Allow encoded slashes
AllowEncodedSlashes NoDecode
<Directory "/var/www/html/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
Ensuite, on modifie le fichier de configuration principal d’Apache pour permettre les overrides.
sudo nano /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None -> All
Require all granted
</Directory>
Activer les modules Apache supplémentaires
Ces modules sont indispensables pour des cms comme WordPress ou Magento.
sudo a2enmod deflate expires headers rewrite security2 ssl
sudo apache2ctl configtest
sudo systemctl restart apache2
Vérifier l’installation d’Apache
Ouvrez votre navigateur et accédez à http://ip-du-serveur
pour voir la page par défaut d’Apache.
Installation de Certbot
Certbot est un outil pour obtenir et renouveler automatiquement les certificats SSL/TLS de Let’s Encrypt.
sudo apt update && sudo apt install certbot python3-certbot-apache -y
certbot --version
Nous utiliserons Certbot plus tard pour sécuriser nos sites avec HTTPS.
Installation de PHP et des extensions requises
Mettre à jour le système et installer PHP
PHP est essentiel pour exécuter des scripts côté serveur. Nous installons la dernière version stable.
sudo apt update && sudo apt install php -y
php -v
php -m
Installer les modules PHP manquants
Magento, WordPress et d’autres applications web nécessitent plusieurs extensions PHP pour fonctionner correctement.
sudo apt install php-bcmath php-curl php-dom php-gd php-imagick php-intl php-mbstring php-mysql php-simplexml php-soap php-xmlwriter php-xsl php-zip
Installer les bibliothèques système nécessaires
Certaines extensions PHP nécessitent des bibliothèques système supplémentaires.
sudo apt install libxml2-dev -y
Activer le module PDO pour MySQL
PDO (PHP Data Objects) est une extension pour accéder aux bases de données.
sudo phpenmod pdo_mysql
Configurer php.ini
pour Apache et CLI
Nous ajustons les paramètres PHP pour optimiser les performances et définir le bon fuseau horaire.
Modifier php.ini
pour Apache
sudo nano /etc/php/8.3/apache2/php.ini
Ajoute ou modifie les paramètres suivants :
date.timezone = Europe/Paris
memory_limit = 4G
realpath_cache_size = 10M
realpath_cache_ttl = 7200
opcache.save_comments = 1
max_execution_time = 1800
zlib.output_compression = On
upload_max_filesize = 1G
post_max_size = 1G
- memory_limit : selon ressources du serveur.
- upload_max_filesize : poids maximum d’upload de fichier (par exemple sur WordPress).
Modifier php.ini
pour CLI
sudo nano /etc/php/8.3/cli/php.ini
On ajoute ou modifie les mêmes paramètres que pour Apache.
Redémarrer Apache pour appliquer les modifications
sudo systemctl restart apache2
Configurer le fuseau horaire au niveau système
S’assurer que le serveur utilise le bon fuseau horaire est important pour la gestion des logs et des tâches planifiées.
On vérifie le fuseau horaire actuel :
timedatectl
On vérifie le fuseau horaire disponible en France :
timedatectl list-timezones | grep Paris
On sélectionne le fuseau horaire :
sudo timedatectl set-timezone Europe/Paris
On vérifie les modifications :
timedatectl
On active (si pas activé par défaut) le Netword Time Protocol :
sudo timedatectl set-ntp true
Et on vérifie une dernière fois les modifications :
timedatectl
On redémarre Apache :
sudo systemctl restart apache2
Résumé
Cette section a couvert l’installation de PHP 8.3 et des extensions nécessaires, la configuration des paramètres PHP pour Magento ou WordPress, l’ajustement du fuseau horaire au niveau système et la vérification de la synchronisation de l’heure.
Installation et configuration de MySQL
Installation de MySQL
MySQL est un SGBD (Système de Gestion de Base de Données) relationnel, idéal pour stocker les données de notre application.
sudo apt update && sudo apt upgrade -y
sudo apt install mysql-server -y
mysql --version
Sécuriser l’installation de MySQL
Il est important de sécuriser MySQL en supprimant les utilisateurs anonymes et en restreignant les accès.
sudo mysql_secure_installation
Répondez aux questions comme suit :
- VALIDATE PASSWORD COMPONENT : Non.
- Remove anonymous users : Oui.
- Disallow root login remotely : Oui.
- Remove test database : Oui.
- Reload privilege tables now : Oui.
Vérifier l’état du service MySQL
sudo systemctl status mysql
Créer une base de données
Créons une base de données avec un utilisateur spécifique.
sudo mysql
À l’intérieur de MySQL, on exécute les commandes suivantes :
CREATE DATABASE demo CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON demo.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Facultatif 1/2 : Configurer MySQL
Optimisons la configuration de MySQL pour de meilleures performances.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
On ajoute ou modifie les paramètres suivants :
innodb_file_per_table = 1
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_log_buffer_size = 128M
innodb_flush_log_at_trx_commit = 1
innodb_thread_concurrency = 8
max_connections = 300
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
On valide la configuration et redémarre MySQL :
sudo mysqld --validate-config
sudo systemctl restart mysql
Facultatif 2/2 : Configurer la journalisation des requêtes lentes
La journalisation des requêtes lentes permet d’identifier les requêtes inefficaces.
sudo touch /var/log/mysql/mysql-slow.log
sudo chown mysql:mysql /var/log/mysql/mysql-slow.log
sudo systemctl restart mysql
Tester la connexion
Vérifions que tout fonctionne correctement en nous connectant à MySQL avec l’utilisateur créé.
mysql -u user -p
SHOW DATABASES;
EXIT;
Vérifier l’état et les journaux de MySQL
Assurons-nous que MySQL est actif et sans erreurs.
sudo systemctl status mysql
sudo journalctl -u mysql
Résumé
Nous avons installé MySQL, sécurisé l’installation, créé une base de données, optimisé la configuration et vérifié la connectivité.
Installation et Configuration Complète d’Elasticsearch 7
Pour des raisons de compatibilité avec Magento, nous installons ici la version 7 de Elasticsearch, nous verrons dans un autre article l’installation de Elasticsearch 8 et Kibana avec connection sécurisée.
Ajouter le Repository Elasticsearch 7
Installer les Dépendances Nécessaires
sudo apt-get install apt-transport-https ca-certificates curl gnupg
Importer la Clé GPG d’Elasticsearch 7
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-archive-keyring.gpg
Ajouter le Repository Elasticsearch 7 à APT
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-archive-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
Installer Elasticsearch 7
sudo apt-get install elasticsearch
Configurer Elasticsearch 7
Éditer le Fichier de Configuration elasticsearch.yml
sudo nano /etc/elasticsearch/elasticsearch.yml
On configure les paramètres essentiels :
cluster.name: demo-cluster
node.name: demo-node
network.host: localhost
http.port: 9200
Remarque : network.host
est défini sur localhost
pour restreindre les accès locaux. Si vous avez besoin d’accéder à Elasticsearch en dehors de localhost renseignez 0.0.0.0
Définir les Paramètres JVM pour Elasticsearch
sudo nano /etc/elasticsearch/jvm.options.d/jvm-custom.options
-Xms1g
-Xmx1g
Renseigne la moitié de la ram disponible sur le serveur, sans dépasser 32Go.
Activer et Démarrer Elasticsearch 7
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
Vérifier l’Installation d’Elasticsearch 7
Tester la Connexion à Elasticsearch 7
Sans certificat (pour diagnostic uniquement) :
curl -X GET http://localhost:9200
Rejoindre le groupe elasticsearch
et redémarrer
sudo usermod -aG elasticsearch ubuntu
sudo reboot
Installation de RabbitMQ
RabbitMQ est un broker de messages, idéal pour la gestion des files d’attente et la communication entre services.
Installer RabbitMQ
sudo apt update && sudo apt upgrade -y
sudo apt install -y erlang
sudo apt install -y rabbitmq-server
Ajouter l’utilisateur ubuntu
au groupe RabbitMQ et redémarrer
sudo usermod -aG rabbitmq ubuntu
sudo reboot
Activer et Démarrer RabbitMQ
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl status rabbitmq-server
Activer le plugin de gestion RabbitMQ
sudo rabbitmq-plugins enable rabbitmq_management
Créer un utilisateur RabbitMQ
sudo rabbitmqctl add_user user password
sudo rabbitmqctl set_user_tags user administrator
sudo rabbitmqctl set_permissions -p / user ".*" ".*" ".*"
Ici l’utilisateur est user et son mot de passe est password. Le virtual host RabbitMQ par défaut est /. Nous n’allons pas aller plus loin dans la configuration et utiliser ce virtualhost.
Accéder à l’interface web de RabbitMQ
Ouvrez votre navigateur et allez sur http://ip-de-votre-serveur:15672/
. Connectez-vous avec :
- Utilisateur :
user
- Mot de passe :
password
Note : Assurez-vous de sécuriser ces identifiants en production.
Installation et configuration de Redis
Redis est un magasin de données en mémoire, utilisé pour le caching, les sessions, et bien plus encore.
Ajouter le repository Redis
sudo apt-get install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /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
sudo apt-get update
sudo apt-get install redis
Activer et Démarrer Redis
sudo systemctl enable redis-server
sudo systemctl start redis-server
sudo systemctl status redis-server
Se connecter à Redis
On teste la connexion avec Redis CLI :
redis-cli
Ensuite, on teste avec la commande ping
:
127.0.0.1:6379> ping
PONG
Configurer Redis pour écouter uniquement sur les interfaces nécessaires
sudo nano /etc/redis/redis.conf
Assurez-vous que la directive bind
est correctement configurée, par exemple pour n’écouter que sur 127.0.0.1
:
bind 127.0.0.1
Optimiser les Paramètres de Redis
Ajustons certains paramètres pour améliorer les performances.
Configurer la Politique d’Expiration
sudo nano /etc/redis/redis.conf
maxmemory 1gb
maxmemory-policy allkeys-lru
- maxmemory : Définit la quantité maximale de mémoire que Redis peut utiliser.
- maxmemory-policy : Définit la politique d’éviction des clés lorsque la limite de mémoire est atteinte.
allkeys-lru
est une option courante qui évicte les clés les moins récemment utilisées.
Redémarrer Redis pour appliquer les modifications :
sudo systemctl restart redis-server
Installer l’Extension PHP Redis
Pour que Magento puisse communiquer avec Redis, il est nécessaire d’installer l’extension PHP Redis.
Identifier la Version de PHP
php -v
Installer l’Extension PHP Redis
Selon votre version de PHP, installez l’extension appropriée :
Pour PHP 7.x :
sudo apt-get install php-redis
Pour PHP 8.x :
sudo apt-get install php8.0-redis
(Remplacez php8.0-redis
par la version spécifique si nécessaire, par exemple php8.1-redis
.)
Redémarrer Apache
sudo systemctl restart apache2
Configuration Spécifique à Magento
Après l’installation de Magento, on modifie le fichier env.php
pour ajouter les configurations Redis.
Modifier le Fichier env.php
de Magento
Naviguez vers le répertoire du site Magento :
cd /var/www/html/repertoire-site-magento
On ouvre le fichier env.php
:
sudo nano app/etc/env.php
On ajoute les configurations Redis suivantes :
'cache' => [
'frontend' => [
'default' => [
'backend' => 'Cm_Cache_Backend_Redis',
'backend_options' => [
'server' => '127.0.0.1',
'port' => '6379',
'persistent' => '',
'database' => '0',
'password' => '', // Ajoute un mot de passe si Redis est sécurisé
'force_standalone' => '0',
'connect_retries' => '1',
'read_timeout' => '10',
'automatic_cleaning_factor' => '0',
'compress_data' => '1',
'compress_tags' => '1',
'compress_threshold' => '20480',
'compression_lib' => 'gzip',
'use_lua' => '0',
'max_concurrency' => '6',
'break_after_frontend' => '5',
'break_after_adminhtml' => '30',
'first_lifetime' => '600',
'bot_first_lifetime' => '60',
'bot_lifetime' => '7200',
'disable_locking' => '0',
'min_lifetime' => '60',
'max_lifetime' => '2592000'
],
'prefix' => 'magento_site1_'
],
'page_cache' => [
'backend' => 'Cm_Cache_Backend_Redis',
'backend_options' => [
'server' => '127.0.0.1',
'port' => '6379',
'persistent' => '',
'database' => '1',
'password' => '', // Ajoute un mot de passe si Redis est sécurisé
'force_standalone' => '0',
'connect_retries' => '1',
'read_timeout' => '10',
'automatic_cleaning_factor' => '0',
'compress_data' => '1',
'compress_tags' => '1',
'compress_threshold' => '20480',
'compression_lib' => 'gzip',
'use_lua' => '0',
'max_concurrency' => '6',
'break_after_frontend' => '5',
'break_after_adminhtml' => '30',
'first_lifetime' => '600',
'bot_first_lifetime' => '60',
'bot_lifetime' => '7200',
'disable_locking' => '0',
'min_lifetime' => '60',
'max_lifetime' => '2592000'
],
'prefix' => 'magento_site1_page_'
]
]
],
'session' => [
'save' => 'redis',
'redis' => [
'host' => '127.0.0.1',
'port' => '6379',
'password' => '', // Ajoute un mot de passe si Redis est sécurisé
'timeout' => '2.5',
'persistent_identifier' => '',
'database' => '2',
'compression_threshold' => '2048',
'compression_library' => 'gzip',
'log_level' => '1',
'max_concurrency' => '6',
'break_after_frontend' => '5',
'break_after_adminhtml' => '30',
'first_lifetime' => '600',
'bot_first_lifetime' => '60',
'bot_lifetime' => '7200',
'disable_locking' => '0',
'min_lifetime' => '60',
'max_lifetime' => '2592000'
]
],
cache : Configuration pour le cache de Magento.
- default : Cache par défaut utilisé par Magento.
- page_cache : Cache de page complet (Full Page Cache).
- prefix : Préfixe unique pour éviter les conflits entre plusieurs sites.
session : Configuration pour la gestion des sessions Magento.
- save : Indique à Magento d’utiliser Redis pour stocker les sessions.
- redis : Options de connexion à Redis pour les sessions.
- database : Utilise la base de données Redis 2 pour les sessions.
Nous n’irons pas plus loin ici, cette configuration est déjà assez avancée.
Configuration Spécifique à WordPress
Installer et Configurer le Plugin Redis Object Cache pour WordPress
Si vous utilisez WordPress, le plugin Redis Object Cache peut améliorer les performances en intégrant Redis pour le caching d’objets.
Installer le Plugin
Via l’Interface d’Administration de WordPress :
- Connectez-vous à l’interface d’administration de votre site WordPress.
- Allez dans Extensions > Ajouter.
- Recherchez « Redis Object Cache« .
- Installez et activez le plugin développé par Till Krüss.
Via la Ligne de Commande (WP-CLI) :
wp plugin install redis-cache --activate
Configurer le Plugin
- Dans l’interface d’administration de WordPress, allez dans Réglages > Redis.
- Cliquez sur Enable Object Cache pour activer Redis comme système de cache d’objet.
- Configurez les options avancées si nécessaire :
- Prefix : Utilisez un préfixe unique pour chaque site (ex.
wp_site1_
). - Database : Utilisez une base de données Redis différente pour chaque site WordPress (ex. bases 0, 1, 2, etc.).
- Prefix : Utilisez un préfixe unique pour chaque site (ex.
Modifier le Fichier wp-config.php
Ajoutez les lignes suivantes dans le fichier wp-config.php
de chaque site :
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', ''); // Ajoute le mot de passe si Redis est sécurisé
define('WP_REDIS_DATABASE', 3); // Change le numéro de base selon le site
define('WP_CACHE_KEY_SALT', 'site1_wp_'); // Utilise un préfixe unique
Configurer Apache pour Utiliser Redis (Optionnel)
Si cous souhaitez que Apache utilise Redis pour certaines fonctionnalités de cache, voici comment procéder. Notez que cette configuration est avancée et peut nécessiter des ajustements selon vos besoins spécifiques.
Installer les Modules Apache Nécessaires
sudo apt-get install libapache2-mod-cache-socache
Configurer Apache pour Utiliser Redis
Éditez le fichier de configuration du site Apache par défaut :
sudo nano /etc/apache2/sites-available/000-default.conf
Ajoutez la configuration de cache suivante :
<IfModule mod_cache.c>
<IfModule mod_cache_socache.c>
CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheSocache shmcb:/var/cache/apache2/mod_cache_socache(512000)
CacheEnable socache /
CacheHeader on
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
CacheIgnoreNoLastMod On
CacheIgnoreCacheControl On
</IfModule>
</IfModule>
Activez les Modules et Redémarrez Apache
sudo a2enmod cache
sudo a2enmod cache_socache
sudo systemctl restart apache2
Cette configuration est basique. Pour une intégration plus avancée avec Redis, des solutions personnalisées ou des modules spécifiques pourraient être nécessaires.
Surveiller les Commandes en Temps Réel
Vous pouvez utiliser l’outil MONITOR
de Redis pour voir toutes les commandes reçues en temps réel.
Attention : L’utilisation de MONITOR
peut générer beaucoup de sortie et affecter les performances de Redis en environnement de production très actif.
redis-cli MONITOR
Exemple de Sortie :
1617891234.567890 [0 127.0.0.1:54321] "GET" "magento_site1_cache_key"
1617891235.678901 [0 127.0.0.1:54321] "SET" "magento_site1_cache_key" "cached_value" "EX" "3600"
1617891236.789012 [0 127.0.0.1:54322] "PING"
Interprétation :
- Les commandes
GET
etSET
indiquent que Magento ou WordPress accèdent et stockent des données dans Redis. - La commande
PING
peut provenir de Redis lui-même ou de scripts de surveillance.
Utiliser des Outils de Surveillance Avancés
Pour une surveillance plus conviviale, vous pouvez utiliser des outils comme RedisInsight.
Installation de RedisInsight
- Allez sur le site officiel de Redis Labs et télécharge la version adaptée à votre système d’exploitation.
- Installez et lancez RedisInsight.
- Connectez-vous à votre serveur Redis (
127.0.0.1:6379
). - Explorez les clés et les statistiques via l’interface de RedisInsight.
Installation de Composer
Composer est un gestionnaire de dépendances pour PHP, facilitant l’installation et la mise à jour des bibliothèques nécessaires à nos projets.
Installer Composer
sudo apt update && sudo apt upgrade -y
sudo apt install composer -y
Vérifier l’Installation
composer --version
Conclusion
Bon, il faut être honnête, ce n’était pas un morceau facile à avaler ce guide, et bravo si vous êtes arrivé jusqu’au bout sans encombre !
Nous avons maintenant un serveur entièrement configuré avec Apache, Certbot, PHP, MySQL, Elasticsearch 7, Redis et Composer. Cet environnement est prêt à héberger des applications robustes et performantes comme Magento ou WordPress, avec des fonctionnalités avancées de recherche, de cache et de gestion des dépendances.
N’hésitez pas à commenter, me solliciter si vous avez un soucis j’essaierais d’y répondre et à partager !
Sources :