Comment installer LAMP sous CentOS ?

I. Présentation

Dans ce tutoriel pas-à-pas sous CentOS, nous verrons comment mettre en place un serveur LAMP : Linux-Apache-MariaDB-PHP, pour préparer votre système Linux à l'hébergement d'applications.

II. Installation du serveur web Apache

La première étape de l’architecture Apache-MariaDB-PHP consiste à installer et configurer Apache. On va donc se connecter au compte applicatif, créé précédemment et exécuter la commande suivante :

$ sudo yum install httpd

Cette tâche s’exécute avec les privilèges du comte root, puisqu’elle utilise une commande sudo. Le mot de passe demandé, est celui du compte de travail, c’est-à-dire, d’après l’exemple ci-dessus, le compte wiki.

Avant de pouvoir démarrer le service, il faut rendre le daemon httpd accessible lors des phases de reboot du système :

$ sudo systemctl enable httpd.service
$ sudo systemctl start httpd.service

A ce stade, on peut vérifier que le service est bien actif et opérationnel en se connectant à l’url suivante : http://. Si le nom n’est pas déclaré dans l’annuaire de noms DNS de l’entreprise, on peut toujours se connecter à l’url en mentionnant l’adresse IP du serveur. On devrait alors visualiser l’écran ci-dessous, sur le navigateur ouvert :

RAPPEL : afin de connaître l’adresse IP d’un serveur, on peut exécuter la commande ci-dessous qui retournera immanquablement l’adresse IP du serveur local :

$ sudo ip addr sho eth0 | grep inet | awk '{ print $2 ; }' | sed 's/\/.*$//'

Si l’on ne souhaite pas ouvrir un navigateur, il est également possible d’utiliser l’outil curl, qui permet de répondre aux requêtes HTTP, sans pour autant consommer des ressources exorbitantes, d’un navigateur tel que Firefox :

$ curl http://<Server>

 

III. Installation du serveur base de données MariaDB

On peut alors installer la base de données MariaDB (en remplacement du moteur MySQL, racheté par Oracle Corp.), afin d’y stocker les informations d’accès au site wiki :

$ sudo yum install mariadb-server mariadb

Une fois l’installation terminée, on peut démarrer le service mariadb en vue de sécuriser ses accès:

$ sudo systemctl start mariadb

On peut alors exécuter le script mysql_secure_installation sur la nouvelle instance MariaDB, permettant de supprimer les options par défaut, qui ne sont pas toujours judicieuses et de verrouiller un peu plus les accès à la base de données système :

$ sudo mysql_secure_installation

L’assistant du script propose en premier lieu d’initialiser le mot de passe du compte root de l’instance :

Pour le reste des questions proposées par ce script, on peut laisser les options par défaut et taper sur [ENTER] à chacune d’entre elles.

On peut alors rendre le service actif lors de chaque redémarrage du système d’exploitation :

$ sudo systemctl enable mariadb.service

 

IV. Installation du serveur de contenu PHP

Maintenant que l’instance de base de données est installée et prête à être utilisée, on peut également installer la partie PHP, afin d’afficher le contenu dynamique. Ces informations seront distribuées via la base MariaDB et affichées au travers du serveur Apache :

$ sudo yum install php php-mysql

A ce stade, il faut alors redémarrer le service httpd pour prendre en compte la nouvelle couche PHP intégrée au serveur web Apache:

$ sudo systemctl restart httpd.service

Afin d’étendre les possibilités de l’interpréteur PHP, on peut également ajouter les modules ci-dessous. Ceci n’est pas une obligation, uniquement une option :

- php-bcmath.x86_64 : applications PHP utilisant la bibliothèque bcmath.
- php-cli.x86_64 : ligne de commande CLI pour PHP.
- php-common.x86_64 : fichiers standard pour PHP.
- php-dba.x86_64 : couche d’abstraction de base de données pour applications PHP.
- php-devel.x86_64 : fichiers nécessaires pour la construction d’extensions PHP.
- php-embedded.x86_64 : bibliothèque PHP pour applications embarquées.
- php-enchant.x86_64 : extension d’enchantement pour applications PHP.
- php-fpm.x86_64 : gestionnaire de processus FastCGI en PHP.
- php-gd.x86_64 : module pour applications PHP utilisant la bibliothèque gd.

Afin de connaître les modules déjà existants sur le système, on peut exécuter l’instruction suivante :

$ sudo yum search php-

On peut disposer d’encore plus d’informations concernant un package en particulier, grâce à la commande ci-dessous :

$ sudo yum info <Package>

Exemple : information concernant le package php-fpm :

$ sudo yum info php-fpm

On peut alors vérifier que le système est correctement configuré et que les options PHP sont bien prises en compte. Pour se faire, il suffit simplement de créer un script PHP, que l’on appellera info.php. Pour que ce script soit reconnu par le serveur web Apache, il doit être sauvegardé dans un répertoire particulier, appelé web root.

Par défaut, dans une distribution CentOS 7 ce répertoire est localisé dans /var/www/html. On va donc devoir éditer un fichier info.php, dans ce même répertoire, avec le contenu suivant :

<?php phpinfo(); ?>

Ainsi, en exécutant l’url http://<Server>/info.php, on devrait pouvoir visualiser la page d’accueil PHP, ci-dessous :

 

ATTENTION : le code de tests ne comprend aucun espace entre "?" et "php". S’il y en a, il faut le supprimer, car le résultat serait une page blanche !

Voilà, votre serveur LAMP sous CentOS est prêt à accueillir vos applications !

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

Philippe PIERRE

A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.

    philippe-pierre a publié 12 articles sur IT-Connect.See all posts by philippe-pierre

    Laisser un commentaire

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