Comment installer Apache, PHP 7.3 et MySQL sur CentOS 7.6

Ce tutoriel montre comment installer un serveur Web Apache sur un serveur CentOS 7 avec PHP (mod_php) et une base de données MySQL. L’acronyme LAMP est l’abréviation de Linux, Apache, MySQL, PHP.

Ce tutoriel mis à jour montre l’installation des dernières versions de PHP (7.0, 7.1, 7.2 et 7.3) sur CentOS 7.6.

1 Remarque préliminaire

Dans ce tutoriel, j’utilise le nom d’hôte server1.example.com avec l’IP p 192.168.0.100. Ces paramètres peuvent être différents pour toi, tu dois donc les remplacer le cas échéant.

Je vais ajouter le repo EPEL ici pour installer la dernière version de phpMyAdmin comme suit :

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

Pour éditer les fichiers sur le shell, je vais installer l’éditeur nano. Si tu préfères vi pour l’édition des fichiers, alors passe cette étape.

yum -y install nano

2 Installation de MySQL / MariaDB

MariaDB est un fork de MySQL du développeur original de MySQL, Monty Widenius. MariaDB est compatible avec MySQL et j’ai choisi d’utiliser MariaDB ici au lieu de MySQL. Exécute cette commande pour installer MariaDB avec yum :

yum -y install mariadb-server mariadb

Ensuite, nous créons les liens de démarrage du système pour MySQL (pour que MySQL démarre automatiquement à chaque fois que le système démarre) et nous démarrons le serveur MySQL :

systemctl start mariadb.service
systemctl enable mariadb.service

Définis les mots de passe pour le compte root de MySQL :

mysql_secure_installation
[[email protected] ~]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <--ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]
New password: <--yourmariadbpassword
Re-enter new password: <--yourmariadbpassword
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] <--ENTER
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <--ENTER
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] <--ENTER
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] <--ENTER
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
[[email protected] ~]#

3 Installation d’Apache

CentOS 7 est livré avec Apache 2.4. Apache est directement disponible en tant que paquet CentOS 7, nous pouvons donc l’installer comme suit :

yum -y install httpd

Voici une capture d’écran du processus d’installation.

Installer le serveur Web Apache sur CentOS

Configure maintenant ton système pour lancer Apache au démarrage…

systemctl start httpd.service
systemctl enable httpd.service

Pour pouvoir accéder au serveur Web depuis l’extérieur, nous devons ouvrir les ports HTTP (80) et HTTPS (443) dans le pare-feu. Le pare-feu par défaut sur CentOS est firewalld qui peut être configuré avec la commande firewalld-cmd.

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

Dirige maintenant ton navigateur vers l’adresse IP de ton serveur, dans mon cashttp://192.168.0.100, et tu devrais voir la page d’accueil d’Apache :

Page par défaut d'Apache sur CentOS

4 Installer PHP

La version de PHP livrée par défaut avec CentOS est assez ancienne (PHP 5.4). C’est pourquoi je vais te montrer dans ce chapitre quelques options pour installer des versions PHP plus récentes comme PHP 7.0 à 7.3 à partir du dépôt Remi.

Ajoute le dépôt Remi CentOS.

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

Installe yum-utils car nous avons besoin de l’utilitaire yum-config-manager.

yum -y install yum-utils

et exécute yum update

yum update

Tu dois maintenant choisir la version de PHP que tu veux utiliser sur le serveur. Si tu veux utiliser PHP 5.4, alors passe au chapitre 4.1. Pour installer PHP 7.0, suis les commandes du chapitre 4.2, pour PHP 7.1, le chapitre 4.3, pour PHP 7.4, utilise le chapitre 4.4 et pour PHP 7.3, suis plutôt le chapitre 4.5. Suis un seul des chapitres 4.x et pas tous car tu ne peux utiliser qu’une seule version de PHP à la fois avec Apache mod_php.

4.1 Installer PHP 5.4

Pour installer PHP 5.4, exécute cette commande :

yum -y install php

4.2 Installer PHP 7.0

Nous pouvons installer PHP 7.0 et le module Apache PHP 7.0 comme suit :

yum-config-manager --enable remi-php70
yum -y install php php-opcache

4.3 Installer PHP 7.1

Si tu veux utiliser PHP 7.1 à la place, utilise :

yum-config-manager --enable remi-php71
yum -y install php php-opcache

4.4 Installer PHP 7.2

Si tu veux utiliser PHP 7.2 à la place, utilise :

yum-config-manager --enable remi-php72
yum -y install php php-opcache

4.5 Installer PHP 7.3

Si tu veux utiliser PHP 7.3 à la place, utilise :

yum-config-manager --enable remi-php73
yum -y install php php-opcache

Dans cet exemple et dans la machine virtuelle téléchargeable, j’utiliserai PHP 7.3.

Nous devons redémarrer Apache pour appliquer les modifications :

 systemctl restart httpd.service

5 Tester PHP / Obtenir des détails sur ton installation PHP

La racine du document du site Web par défaut est /var/www/html. Nous allons créer un petit fichier PHP (info.php) dans ce répertoire et l’appeler dans un navigateur pour tester l’installation PHP. Le fichier affichera de nombreux détails utiles sur notre installation PHP, comme la version PHP installée.

nano /var/www/html/info.php
<?php
phpinfo();

Maintenant, nous appelons ce fichier dans un navigateur (par exemple http://192.168.0.100/info.php) :

Informations sur la version de PHP

Comme tu le vois, PHP 7.3 fonctionne, et il fonctionne par le biais du Handler Apache 2.0, comme le montre la ligne API du serveur. Si tu fais défiler la page plus bas, tu verras tous les modules qui sont déjà activés dans PHP. MySQL n’y figure pas, ce qui signifie que nous n’avons pas encore la prise en charge de MySQL en PHP.

6 Obtenir la prise en charge de MySQL en PHP

Pour obtenir la prise en charge de MySQL en PHP, nous pouvons installer le paquet php-mysqlnd. C’est une bonne idée d’installer aussi d’autres modules PHP, car tu pourrais en avoir besoin pour tes applications. Tu peux rechercher les modules PHP5 disponibles comme ceci :

yum search php

Choisis ceux dont tu as besoin et installe-les comme ceci :

yum -y install php-mysqlnd php-pdo

Dans l’étape suivante, je vais installer certains modules PHP courants qui sont requis par les systèmes CMS comme WordPress, Joomla et Drupal :

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

Redémarre maintenant le serveur Web Apache :

 systemctl restart httpd.service

Recharge maintenant http://192.168.0.100/info.php dans ton navigateur et fais de nouveau défiler la page jusqu’à la section des modules. Tu devrais maintenant trouver beaucoup de nouveaux modules comme curl, etc :

PHP a maintenant le support MySQL activé

Si tu n’as plus besoin de la sortie d’informations PHP, supprime ce fichier pour des raisons de sécurité.

rm /var/www/html/info.php

7 Installation de phpMyAdmin

phpMyAdmin est une interface Web par laquelle tu peux gérer tes bases de données MySQL.
phpMyAdmin peut maintenant être installé comme suit :

yum -y install phpMyAdmin

Nous allons maintenant configurer phpMyAdmin. Nous modifions la configuration d’Apache pour que phpMyAdmin n’autorise pas seulement les connexions depuis localhost (en commentant la strophe <RequireAny> et en ajoutant la ligne ‘Require all granted’) :

nano /etc/httpd/conf.d/phpMyAdmin.conf
[...]
Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>
# Apache 2.4
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/> Options none AllowOverride Limit Require all granted </Directory>

[...]

Redémarre Apache pour appliquer les changements de configuration :

systemctl restart  httpd.service

Ensuite, tu peux accéder à phpMyAdmin sous http://192.168.0.100/phpmyadmin/ :

Connexion à PHPMyAdmin

PHPMyAdmin sur CentOS

8 Télécharger en tant que machine virtuelle

Cette configuration est disponible en téléchargement sous forme de machine virtuelle au format ova/ovf (compatible avec VMWare et Virtualbox) pour les abonnés de howtoforge.

Détails de connexion pour la VM

  • Le mot de passe de la racine Linux est : howtoforge.
  • Le mot de passe racine de Rhe MySQL est : howtoforge

Change les deux mots de passe lors de la première connexion.

  • L’adresse IP de la VM est : 192.168.0.100

9 Liens

Apache :http://httpd.apache.org/
PHP :http://www.php.net/
MySQL :http://www.mysql.com/
CentOS :http://www.centos.org/
phpMyAdmin :http://www.phpmyadmin.net/

Vous aimerez aussi...