Configuration initiale du système
Avant de procéder à l'installation des composants du serveur Web, il est nécessaire de s'assurer que l'interface réseau est active et que les flux de trafic sont autorisés.
1. Activation de l'interface réseau
Sur CentOS 7, modifiez le fichier de configuraton de votre interface réseau (généralement situé dans /etc/sysconfig/network-scripts/) :
vi /etc/sysconfig/network-scripts/ifcfg-ens33
Assurez-vous que le paramètre ONBOOT est défini sur yes :
ONBOOT=yes
Redémarrez le service réseau pour appliquer les changements :
systemctl restart network
2. Gestion du pare-feu
Pour un environnement de développement initial, vous pouvez arrêter et désactiver le pare-feu Firewalld :
systemctl stop firewalld
systemctl disable firewalld
Déploiement du serveur Web Nginx
Nginx n'est pas disponible dans les dépôts par défaut de CentOS. Il faut donc installer le dépôt EPEL (Extra Packages for Enterprise Linux).
yum -y install epel-release
yum -y install nginx
Activez le service pour qu'il se lance automatiquement au démarrage du système :
systemctl start nginx
systemctl enable nginx
Installation de PHP 7.4
Pour obtenir une version récente de PHP comme la 7.4, l'utilisation du dépôt Remi est recommandée.
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install php74-php-fpm php74-php-mysqlnd php74-php-gd php74-php-mbstring php74-php-cli
Une fois l'installation terminée, démarrez le processus PHP-FPM :
systemctl start php74-php-fpm
systemctl enable php74-php-fpm
Interconnexion de Nginx et PHP
Il est nécessaire de modifier la configuration de Nginx pour qu'il puisse transmettre les requêtes PHP au service PHP-FPM.
Ouvrez le fichier de configuration principal :
vi /etc/nginx/nginx.conf
Modifiez le bloc server pour inclure la gestion des fichiers .php :
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Redémarrez Nginx pour valider la configuration :
systemctl restart nginx
Créez un fichier de test à la racine du serveur :
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/check.php
Installasion et sécurisation de MySQL 5.6
Installez le dépôt communautaire MySQL puis le serveur :
yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld
systemctl enable mysqld
Initialisez le mot de passe de l'administrateur root :
mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('votre_mot_de_passe');"
Validation de la connexion PHP vers MySQL
Afin de vérifier que le module PHP communique correctement avec la base de données, créez un scriptt de test nommé db_test.php :
<?php
$hote = 'localhost';
$utilisateur = 'root';
$mdp = 'votre_mot_de_passe';
$bdd = mysqli_connect($hote, $utilisateur, $mdp);
if (!$bdd) {
die('Erreur de connexion : ' . mysqli_connect_error());
}
echo 'Connexion réussie au serveur MySQL';
mysqli_close($bdd);
?>
Accédez à ce fichier via votre navigateur (http://[IP_DU_SERVEUR]/db_test.php) pour confirmer le bon fonctionnement de l'ensemble de la pile LNMP.