Prérequis et outils de compilation
Avant de compiler Nginx à partir des sources, il est nécessaire d'installer les outils de développement et les bibliothèques de base sur votre système CentOS 7. Exécutez la commande suivante pour préparer l'environnement :
yum install -y gcc gcc-c++ make libtool zlib-devel openssl-devel
Installation de la bibliothèque PCRE
Nginx utilise la bibliothèque PCRE (Perl Compatible Regular Expressions) pour traiter les expressions régulières dans ses fichiers de configuration, notamment pour les blocs de localisation (locations) et la réécriture d'URL.
Téléchargez et compilez la vertion stable de PCRE (ici la version 8.45) :
# Récupération de l'archive
curl -O https://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz
# Extraction et accès au répertoire
tar -xzvf pcre-8.45.tar.gz
cd pcre-8.45
# Configuration et compilation
./configure
make && make install
# Vérification de l'installation
pcre-config --version
Compilation et installation de Nginx
Nous allons maintenant procéder à l'installation de Nginx. Il est recommandé de vérifier la dernière version stable sur le site officiel.
# Téléchargement de Nginx
wget https://nginx.org/download/nginx-1.26.1.tar.gz
tar -zxvf nginx-1.26.1.tar.gz
cd nginx-1.26.1
# Configuration avec support SSL
# L'option --prefix définit le répertoire d'installation
./configure --prefix=/usr/local/nginx --with-http_ssl_module
# Compilation et déploiement
make && make install
Une fois l'installation terminée, vous pouvez vérifier la version installlée :
/usr/local/nginx/sbin/nginx -v
Configuration du service Systemd pour le démarrage automatique
Pour gérer Nginx comme un service système et permettre son lancement automatique au démarrage du serveur, vous devez créer un fichier d'unité systemd.
Créez le fichier suivant : /etc/systemd/system/nginx.service
[Unit]
Description=Serveur HTTP Nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Appliquez les permissions nécsesaires et rechargez la configuration du gestionnaire de services :
chmod 644 /etc/systemd/system/nginx.service
systemctl daemon-reload
Gestion du service Nginx
Vous pouvez désormais utiliser les commandes standards de CentOS pour piloter votre serveur web :
# Activer le lancement automatique au boot
systemctl enable nginx
# Démarrer le serveur
systemctl start nginx
# Vérifier le statut du processus
systemctl status nginx
# Appliquer des modifications de configuration sans interruption
systemctl reload nginx
# Arrêter le service
systemctl stop nginx