Comment installer une pile Linux, Apache, MySQL, PHP (LAMP) sur CentOS 7

introduction

Une pile «LAMP» est un groupe de logiciels open source généralement installés ensemble pour permettre à un serveur d’héberger des sites Web dynamiques et des applications Web. Ce terme est en fait un acronyme qui représente le système d'exploitationLinux, avec le serveur web spacheA. Les données du site sont stockées dans une base de données sySQLM(utilisant MariaDB) et le contenu dynamique est traité parPHP.

Dans ce guide, une pile LAMP sera installée sur un VPS CentOS 7. CentOS remplira notre première exigence: un système d'exploitation Linux.

[.note] #Note: La pile LAMP peut être installée automatiquement sur votre Droplet en ajoutantthis script à ses données utilisateur lors de son lancement. Consultezthis tutorial pour en savoir plus sur les données utilisateur Droplet.
#

Conditions préalables

Avant de commencer avec ce guide, vous devez avoir un compte utilisateur distinct, non root, configuré sur votre serveur. Vous pouvez apprendre comment faire cela en effectuant les étapes 1 à 4 dans lesinitial server setup for CentOS 7.

[[step-one -—- install-apache]] == Première étape - Installer Apache

Le serveur Web Apache est actuellement le serveur Web le plus populaire au monde, ce qui en fait un excellent choix par défaut pour l'hébergement d'un site Web.

Nous pouvons installer Apache facilement en utilisant le gestionnaire de paquets de CentOS,yum. Un gestionnaire de paquets nous permet d’installer la plupart des logiciels sans douleur à partir d’un référentiel géré par CentOS. Vous pouvez en savoir plus surhow to use yum ici.

Pour nos besoins, nous pouvons commencer en tapant ces commandes:

sudo yum install httpd

Puisque nous utilisons une commandesudo, ces opérations sont exécutées avec les privilèges root. Il vous demandera le mot de passe de votre utilisateur régulier pour vérifier vos intentions.

Ensuite, votre serveur Web est installé.

Une fois l’installation terminée, vous pouvez démarrer Apache sur votre VPS:

sudo systemctl start httpd.service

Vous pouvez immédiatement effectuer une vérification ponctuelle pour vérifier que tout s'est passé comme prévu en visitant l'adresse IP publique de votre serveur dans votre navigateur Web (voir la note sous le titre suivant pour savoir quelle est votre adresse IP publique si vous ne disposez pas de ces informations.) déjà):

http://your_server_IP_address/

Vous verrez la page Web par défaut de CentOS 7 Apache, qui est là à des fins d’information et de test. Ça devrait ressembler a quelque chose comme ca:

CentOS 7 Apache default

Si vous voyez cette page, votre serveur Web est maintenant correctement installé.

La dernière chose à faire est de permettre à Apache de démarrer au démarrage. Utilisez la commande suivante pour le faire:

sudo systemctl enable httpd.service

Comment trouver l’adresse IP publique de votre serveur

Si vous ne connaissez pas l’adresse IP publique de votre serveur, vous pouvez la trouver de différentes façons. Il s’agit généralement de l’adresse que vous utilisez pour vous connecter à votre serveur via SSH.

A partir de la ligne de commande, vous pouvez trouver ceci de plusieurs manières. Tout d'abord, vous pouvez utiliser les outilsiproute2 pour obtenir votre adresse en tapant ceci:

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

Cela vous donnera une ou deux lignes en arrière. Ce sont toutes deux des adresses correctes, mais votre ordinateur ne peut en utiliser qu’une, alors n'hésitez pas à les essayer.

Une autre méthode consiste à utiliser un tiers pour vous dire commentit voit votre serveur. Vous pouvez le faire en demandant à un serveur spécifique quelle est votre adresse IP:

curl http://icanhazip.com

Quelle que soit la méthode utilisée pour obtenir votre adresse IP, vous pouvez la saisir dans la barre d'adresse de votre navigateur Web pour accéder à votre serveur.

[[step-two -—- install-mysql-mariadb]] == Deuxième étape - Installer MySQL (MariaDB)

Maintenant que notre serveur Web est opérationnel, il est temps d'installer MariaDB, une solution de remplacement MySQL. MariaDB est une plate-forme développée par la communauté du système de gestion de base de données relationnelle MySQL. Fondamentalement, il organisera et fournira un accès aux bases de données sur lesquelles notre site peut stocker des informations.

Encore une fois, nous pouvons utiliseryum pour acquérir et installer notre logiciel. Cette fois-ci, nous installerons également d’autres packages «auxiliaires» qui nous aideront à faire communiquer nos composants:

sudo yum install mariadb-server mariadb

Une fois l'installation terminée, vous devez démarrer MariaDB avec la commande suivante:

sudo systemctl start mariadb

Maintenant que notre base de données MySQL est en cours d’exécution, nous souhaitons exécuter un simple script de sécurité permettant de supprimer certaines valeurs par défaut dangereuses et de verrouiller un peu l’accès à notre système de base de données. Démarrez le script interactif en exécutant:

sudo mysql_secure_installation

L'invite vous demandera votre mot de passe root actuel. Comme vous venez d’installer MySQL, vous n’en aurez probablement pas. Par conséquent, laissez le champ vide en appuyant sur Entrée. Ensuite, l'invite vous demandera si vous souhaitez définir un mot de passe root. Allez-y, entrezY et suivez les instructions:

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

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

New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
 ... Success!

Pour le reste des questions, vous devez simplement appuyer sur la touche «Entrée» à travers chaque invite pour accepter les valeurs par défaut. Cela supprimera des exemples d'utilisateurs et de bases de données, désactivera les connexions à la racine distante et chargera ces nouvelles règles afin que MySQL respecte immédiatement les modifications que nous avons apportées.

La dernière chose que vous voudrez faire est de permettre à MariaDB de démarrer au démarrage. Utilisez la commande suivante pour le faire:

sudo systemctl enable mariadb.service

À ce stade, votre système de base de données est maintenant configuré et nous pouvons continuer.

[[step-three -—- install-php]] == Troisième étape - Installer PHP

PHP est le composant de notre configuration qui traitera le code pour afficher le contenu dynamique. Il peut exécuter des scripts, se connecter à nos bases de données MySQL pour obtenir des informations et transmettre le contenu traité à notre serveur Web.

Nous pouvons à nouveau tirer parti du systèmeyum pour installer nos composants. Nous allons également inclure le paquet php-mysql:

sudo yum install php php-mysql

Cela devrait installer PHP sans aucun problème. Nous devons redémarrer le serveur Web Apache pour qu'il fonctionne avec PHP. Vous pouvez le faire en tapant ceci:

sudo systemctl restart httpd.service

Installer des modules PHP

Pour améliorer les fonctionnalités de PHP, nous pouvons éventuellement installer des modules supplémentaires.

Pour voir les options disponibles pour les modules et les bibliothèques PHP, vous pouvez les saisir dans votre système:

yum search php-

Les résultats sont tous des composants facultatifs que vous pouvez installer. Il vous donnera une brève description pour chacun:

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
. . .

Pour obtenir plus d'informations sur chaque module, vous pouvez effectuer une recherche sur Internet ou consulter la description longue dans le package en tapant:

yum info package_name

Il y aura beaucoup de sortie, avec un champ appeléDescription qui expliquera plus en détail les fonctionnalités fournies par le module.

Par exemple, pour savoir ce que fait le modulephp-fpm, nous pourrions taper ceci:

yum info php-fpm

Outre de nombreuses autres informations, vous trouverez quelque chose qui ressemble à ceci:

. . .
Summary     : PHP FastCGI Process Manager
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI
            : implementation with some additional features useful for sites of
            : any size, especially busier sites.

Si, après des recherches, vous décidez que vous souhaitez installer un paquet, vous pouvez le faire en utilisant la commandeyum install comme nous l'avons fait pour nos autres logiciels.

Si nous décidons quephp-fpm est quelque chose dont nous avons besoin, nous pourrions taper:

sudo yum install php-fpm

Si vous souhaitez installer plusieurs modules, vous pouvez le faire en listant chacun d'eux, séparés par un espace, en suivant la commandeyum install, comme ceci:

sudo yum install package1 package2 ...

À ce stade, votre pile LAMP est installée et configurée. Nous devrions quand même tester notre PHP.

[[step-four -—- test-php-processing-on-your-web-server]] == Étape 4 - Tester le traitement PHP sur votre serveur Web

Afin de vérifier que notre système est correctement configuré pour PHP, nous pouvons créer un script PHP très basique.

Nous appellerons ce scriptinfo.php. Pour qu'Apache trouve le fichier et le serve correctement, il doit être enregistré dans un répertoire très spécifique, appelé "racine Web".

Dans CentOS 7, ce répertoire est situé à/var/www/html/. Nous pouvons créer le fichier à cet emplacement en tapant:

sudo vi /var/www/html/info.php

Cela ouvrira un fichier vierge. Nous voulons mettre le texte suivant, qui est un code PHP valide, dans le fichier:

Lorsque vous avez terminé, enregistrez et fermez le fichier.

Si vous utilisez un pare-feu, exécutez les commandes suivantes pour autoriser le trafic HTTP et HTTPS:

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

Nous pouvons maintenant vérifier si notre serveur Web peut afficher correctement le contenu généré par un script PHP. Pour essayer cela, il suffit de visiter cette page dans votre navigateur Web. Vous aurez à nouveau besoin de l’adresse IP publique de votre serveur.

L'adresse que vous souhaitez visiter sera:

http://your_server_IP_address/info.php

La page à laquelle vous venez devrait ressembler à ceci:

CentOS 7 default PHP info

Cette page vous fournit essentiellement des informations sur votre serveur du point de vue de PHP. C'est utile pour le débogage et pour vous assurer que vos paramètres sont appliqués correctement.

Si cela réussit, votre PHP fonctionne comme prévu.

Vous voudrez probablement supprimer ce fichier après ce test, car il pourrait en fait fournir des informations sur votre serveur à des utilisateurs non autorisés. Pour ce faire, vous pouvez taper ceci:

sudo rm /var/www/html/info.php

Vous pouvez toujours recréer cette page si vous devez accéder aux informations ultérieurement.

Conclusion

Maintenant que vous avez une pile LAMP installée, vous avez beaucoup de choix pour ce qu'il faut faire ensuite. En gros, vous avez installé une plate-forme qui vous permettra d’installer la plupart des types de sites Web et de logiciels Web sur votre serveur.