LAMP : Installer Apache, MariaDB et PHP 7 sur CentOS 7.6

I. Présentation

Dans ce tutoriel, je vous propose de mettre en place un serveur LAMP (Linux, Apache, MySQL/MariaDB, PHP) sur la dernière version de CentOS, à savoir CentOS 7.6. Au niveau de PHP, je vais déployer la dernière version à savoir PHP 7.3 ainsi que MariaDB et non MySQL.

Prêt ? Alors allons-y... mais avant de commencer, faisons une mise à jour des paquets :

yum update

Connectez-vous à votre serveur... et suivez le guide.

II. Installer Apache

Commencez par installer Apache qui est représenté par le paquet "httpd" sur CentOS :

yum -y install httpd

S'il s'agit d'un serveur web, il est préférable d'activer le démarrage automatique d'Apache en cas de reboot du serveur. Grâce à systemctl nous allons pouvoir activer le démarrage automatique du service httpd :

systemctl start httpd.service
systemctl enable httpd.service

Pour que les flux externes à destination du serveur web soit autorisé, nous devrons ouvrir les flux sur le pare-feu local firewall-cmd pour sur les protocoles HTTP et HTTPS (ou l'un ou l'autre). Nos deux règles seront permanentes.

Ce qui nous donne trois commandes à saisir, pour autoriser le HTTP, ensuite le HTTPS et enfin recharger le firewall pour prendre en compte les changements.

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Voilà pour ce qui est de l'installation d'Apache. Sachez que pour redémarrer le service, la commande est :

systemctl restart httpd.service

La suite va consister à déployer vos "Virtual Hosts" et je vous recommander d'utiliser autant que possible le protocole HTTPS plutôt que le HTTP.

III. Installer PHP 7.3

Dans cet exemple, je vais installer PHP 7.3 qui est la dernière version en date de PHP. Nous allons devoir récupérer cette version dans d'autres dépôts car ce n'est pas cette version qui nativement proposée avec CentOS (PHP 5.6).

Nous allons utiliser la source de paquets additionnelle EPEL (Extra Package for Entreprise Linux), que l'on ajoute de cette façon :

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release

Le dépôt Remi pour CentOS doit être ajouté également, puis nous installons yum-utils car nous avons besoin de yum-config-manager pour activer le paquet correspondant à PHP 7.3 et pouvoir l'installer.

Ajoutez le dépôt remi :

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Installez yum-utils que l'on va utiliser via yum-config-manager.

yum -y install yum-utils

Une update de la base et on active PHP 7.3 via le dépôt remi :

yum update
yum-config-manager --enable remi-php73

Enfin, on installe PHP 7.3 et le paquet php-opcache (facultatif) pour l'utilisation du cache PHP :

yum -y install php php-opcache

On va redémarrer notre serveur web fraîchement installé :

systemctl restart httpd.service

Avant de passer à la partie base de données, nous allons installer quelques extensions pour PHP, y compris l'extension pour MariaDB, ainsi que l'outil Curl :

yum -y install php-mysqlnd php-pdo php-gd php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

Pour afficher les informations concernant PHP, notamment sa version ainsi que les modules chargés. Nous allons créer une page PHP pour afficher le résultat de phpinfo().

Créez une page à la racine du serveur web :

nano /var/www/html/version.php

Ajoutez le code suivant à cette page :

<?php phpinfo(); ?>

Sauvegardez et accédez à la page à l'aide de votre navigateur. Vous devez obtenir une page semblable à celle-ci :

Lorsque vous avez terminé d'utiliser cette page, pensez à la supprimer car elle fournie des informations importantes sur votre configuration :

rm /var/www/html/version.php

 

IV. Installer MariaDB / MySQL

Pour terminer, nous allons installer le serveur MariaDB par l'intermédiaire de deux paquets :

yum -y install mariadb-server mariadb

Sur le même principe que le service httpd, je vous invite à configurer le service mariadb pour le démarrage automatique :

systemctl start mariadb.service
systemctl enable mariadb.service

Le message de validation suivant s'affiche :

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

Le paquet est installé mais sans plus attendre, nous allons sécuriser à minima l'installation grâce au script "mysql_secure_installation". Il va nous permettre de définir un mot de passe root (de MariaDB), désactiver l'accès anonyme, supprimer la base de test, et refuser les connexions distantes avec l'utilisateur root.

Il suffit d'appeler le script :

mysql_secure_installation

Pour faire simple, répondez oui avec "y" à l'intégralité des questions.

Le serveur LAMP est prêt à être utilisé ! 🙂

Si besoin, vous pouvez installer PhpMyAdmin pour administrer le serveur MariaDB :

yum -y install phpMyAdmin

Ensuite, son fichier de configuration est le suivant (notamment pour filtrer les accès et autoriser que certaines IP à se connecter dessus) :

nano /etc/httpd/conf.d/phpMyAdmin.conf

 

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5471.Voir tous les posts

One thought on “LAMP : Installer Apache, MariaDB et PHP 7 sur CentOS 7.6

  • Sympa le tuto, pourriez vous nous en dire plus sur la partie sécurisation de ces différents services:
    – DIrectory Listing
    – Antiloris
    – iptables
    – redirection https automatique
    – Tokens Prod
    – ServerSignature Off
    – Etc …

    Merci

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.