Comment installer LAMP sous CentOS ?
Sommaire
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 !
Bonjour, tout d’abord merci pour ce tuto clair et concis, todo bueno!
Toujours est il que j’ai une question, je n’arrive personnellement pas à aller sur la page de test.
J’ai bien généré un fichier info.php dans le répertoire var/www/html/ mais malgré cela quand je tente d’aller sur l’adresse http://192.168.72.88/info.php je n’ai rien. Ca me met que le serveur ne répond pas. Une idée du pourquoi ? Sachant que la page de test que l’on doit réaliser préalablement dans le tuto ne répond pas non plus. Ceci dit, j’arrive bien à pinger le serveur en question.
Bonjour,
Il peut y avoir deux raisons à cela:
1°) le fichier info.php contient une erreur de syntaxe. Il faut vraiment avoir la ligne suivante: sans tabulation.
2°) le fichier httpd.conf ne prend pas en compte PHP. Il faut modifier la configuration HTTP pour cela et bien redémarrer le service httpd.
Si l’adresse IP n’est pas nécessairement celle de votre serveur, vous pouvez tester en la remplaçant avec localhost. Mais, si d’ores et déjà la page de test Apache ne répond pas c’est qu’il y a un problème avec le service httpd. Il faut peut-être scruter les journaux de logs de /var/log/http ou exécuter un journalctl -xe pour lister les potentielles erreurs au démarrage du service. Tant que la page web de test ne s’affiche pas c’est que le service n’est pas opérationnel. Il faut peut-être le redémarrer.
J’espère avoir répondu à votre question.
Bonne journée.