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
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