La pile LAMP est une combinaison de L inux, A paché, M ySQL &P HP. Ici, Apache est le serveur Web populaire, MySQL est le système de gestion de base de données relationnelles et PHP est le langage de programmation généralement utilisé pour développer des applications Web.
La plupart des sites Web sont construits avec PHP et MySQL, qui est hébergé avec l'environnement LAMP. Par exemple, les plates-formes Web de blogs populaires WordPress, Drupal sont développées avec PHP et MySQL. Les deux sont largement hébergés sur l'environnement LAMP.
Ce guide pratique vous aide à installer et à configurer LAMP Stack sur un système Linux Debian 10.
Prérequis
Vous devez disposer d'un compte de privilèges sudo pour accéder au système Linux Debian 10.
Connectez-vous au système Debian 10 et mettez à niveau les packages actuels vers les dernières versions disponibles.
sudo apt update && sudo apt upgrade
Installez également les packages ci-dessous sur votre système requis pour les commandes suivantes de ce didacticiel.
sudo apt install ca-certificates apt-transport-https
Étape 1 – Installation d'Apache
Les packages Apache 2.4 sont disponibles dans les référentiels par défaut du système Debian 10. Vous pouvez simplement installer les derniers packages Apache2 en exécutant la commande suivante :
sudo apt install apache2
La commande ci-dessus ajoute également des packages dépendants dans votre système. Le programme d'installation démarrera automatiquement le service Apache2, vous pouvez le vérifier à l'aide de la commande suivante :
sudo systemctl status apache2
Vous devriez trouver Apache en cours d'exécution. Accédez maintenant à l'adresse IP de votre serveur ou à un nom de domaine pointant vers l'adresse IP du serveur dans le navigateur Web. Vous trouverez la page de destination par défaut comme indiqué ci-dessous :
Dans mon cas, j'ai pointé un sous-domaine debian10.tecadmin.net
au système Debian 10. Puis y accéder dans un navigateur Web, comme :
Étape 2 – Installer MySQL
Le référentiel Debian 10 par défaut contient MariaDB (remplacement de MySQL) comme serveur de base de données par défaut. Si vous êtes d'accord pour utiliser MariaDB, exécutez les commandes d'installation, sinon suivez le didacticiel d'installation du serveur MySQL.
sudo apt install mariadb-server
Une fois les packages MySQL installés, exécutez ce qui suit pour configurer le serveur MySQL pour la première fois.
sudo mysql_secure_installation
La commande ci-dessus lancera un assistant de configuration. Suivez les instructions à l'écran. Nous avons inclus les étapes nécessitant une intervention de l'utilisateur comme ci-dessous :
- Sur un serveur nouvellement installé, appuyez simplement sur Entrée :
Enter current password for root (enter for none): OK, successfully used password, moving on...
- Appuyez sur "y", puis saisissez un mot de passe sécurisé à définir pour le compte root de MySQL.
Set root password? [Y/n] y New password: Re-enter new password:
- Appuyez sur "y" et appuyez sur Entrée pour supprimer les utilisateurs anonymes :
Remove anonymous users? [Y/n] y
- Appuyez sur "y" et appuyez sur Entrée pour restreindre l'accès à distance pour le compte root :
Disallow root login remotely? [Y/n] y
- Appuyez sur "y" et appuyez sur Entrée pour supprimer la base de données de test créée par défaut lors de l'installation :
Remove test database and access to it? [Y/n] y
- Enfin, appuyez sur "y" et appuyez sur Entrée pour recharger les privilèges.
Reload privilege tables now? [Y/n] y
L'assistant de base de données est maintenant terminé. Votre serveur est prêt à accéder.
Tapez la commande ci-dessous pour accéder au shell du serveur MySQL.
mysql -u root -p
Sortie :
Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 51 Server version: 10.3.27-MariaDB-0+deb10u1 Debian 10 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Étape 3 - Installation de PHP
Les référentiels système Debian 10 par défaut contiennent une ancienne version de PHP. Pour installer la dernière version de PHP, ajoutez un PPA tiers à votre système. Exécutez la commande ci-dessous pour ajouter PPA à votre système.
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
sudo echo "deb https://packages.sury.org/php/ buster main" | tee /etc/apt/sources.list.d/php.list
Ensuite, mettez à jour le cache Apt sur votre système :
sudo apt update
Installez le PHP avec les modules requis. Pour installer la dernière version de PHP, exécutez la commande suivante, sinon passez à la commande suivante pour installer une version spécifique de PHP.
sudo apt install php php-mysql libapache2-mod-php
Si l'application nécessite une version PHP spécifique, spécifiez le numéro de version avec le nom du package. Par exemple, pour installer PHP 7.1, utilisez la commande : sudo apt install php7.1 php7.1-mysql libapache2-mod-php7.1
Appuyez sur 'y' pour la confirmation pour terminer le processus d'installation.
Étape 4 - Vérifier la version PHP
Pour vérifier la configuration de LAMP sur votre système, créez un script PHP avec phpinfo() fonction sous la racine du document Apache. Pour ce faire, modifiez /var/www/html/info.php fichier dans votre éditeur de texte préféré et ajoutez le contenu ci-dessous au fichier et enregistrez-le.
PHP
123 |
Accédez maintenant à info.php fichier dans un navigateur Web en utilisant l'adresse IP de votre système ou un nom de domaine pointant vers cette adresse IP.
C'est ça. Vous avez installé avec succès Apache, MySQL et PHP sur votre système Linux Debian 10.
Étape 5 - Sécurisez Apache avec Let's Encrypt
Le certificat SSL peut être émis pour un domaine ou un sous-domaine uniquement. Comme nous avons déjà pointé un sous-domaine vers notre adresse IP système Debian 10. Créez maintenant un fichier de configuration Virtualhost dans Apache pour le domaine.
Le nom de domaine sera changé dans votre cas. Mettez donc à jour debian10.tecadmin.net avec votre nom de domaine pour les commandes et la configuration ci-dessous.
sudo nano /etc/apache2/sites-available/debian10.tecadmin.net.conf
Ajoutez le contenu suivant au fichier. Assurez-vous de changer votre nom de serveur et la racine du document au bon emplacement
Apache
12345678 |
Enregistrez et fermez le fichier de configuration.
Ensuite, activez le fichier de configuration Apache. Cela créera un lien du fichier de configuration du répertoire sites-available vers le répertoire sites-enabled.
sudo a2ensite debian10.tecadmin.net
Rechargez la configuration Apache pour recharger les paramètres :
sudo systemctl reload apache2
Vous avez un site actif configuré dans le serveur Apache.
Maintenant, installez le client Certbot Let's Encrypt avec le plugin Apache sur votre système Debian. Exécutez les commandes ci-dessous pour installer le Certbot.
sudo apt install python3-certbot python3-certbot-apache
Une fois l'installation terminée. Exécutez la commande suivante pour demander un certificat SSL. Cette commande analysera tous les sites configurés dans Apache.
sudo certbot --apache
Lors de la première exécution, la commande vous demandera de fournir une adresse e-mail et d'accepter les alertes SSL envoyées telles que le renouvellement, etc.
Ensuite, il listera tous les sites configurés dans Apache et vous invitera à saisir l'identifiant du site pour émettre le certificat correspondant. Dans mon cas, l'identifiant du site est 1. Vous pouvez sélectionner plusieurs sites avec des identifiants de commande distincts.
Une fois l'autorisation terminée, la commande vous demandera de configurer la redirection automatique. Sélectionnez n'importe quel nombre de notre choix et de nos exigences.
Tout est fait, cela créera un fichier de configuration Apache supplémentaire avec un certificat nouvellement émis pour écouter sur TLS/SSL sur le port 443.
Accédez à nouveau à votre domaine dans le navigateur et vérifiez le certificat SSL.
Conclusion
Ce tutoriel vous a aidé à configurer l'environnement LAMP sur un système Linux Debian 10 Buster. Vous fournit également des instructions pour sécuriser Apache avec un certificat SSL Let's Encrypt.