Recherche de site Web

Comment installer et configurer LAMP sur Debian 11 (Bullseye)


L'une des choses les plus importantes lors de la configuration d'un serveur Linux est le déploiement d'un ou plusieurs sites Web. Selon l'enquête de NetCraft.com réalisée en février 2022 auprès du 1 million de sites Web les plus fréquentés au monde, environ 23,44 % d'entre eux fonctionnent sur Apache.

Ce didacticiel présentera les bases de l'installation et de la configuration d'un serveur Linux (en particulier Debian 11 Bullseye) pour fonctionner comme un serveur LAMP.

Qu'est-ce que le serveur LAMP ?

Dans le monde informatique, LAMP acronyme de Linux (ici en utilisant Debian 11), Apache, MySQL, et PHP (LAMP). LAMP est couramment utilisé pour référencer des piles de logiciels (en particulier MySQL et PHP) sur un serveur Web.

Avant de plonger dans les aspects de configuration, il est important de connaître le serveur Web Apache.

Qu’est-ce que le serveur Web Apache ?

Apache était l'un des serveurs Web « originaux » et ses débuts remontent à 1995. Apache est encore largement utilisé aujourd'hui et bénéficie d'une longévité, d'une grande quantité de documentation et de tonnes de ressources. modules pour ajouter de la flexibilité.

Installer MySQL et PHP dans Debian 11

1. Cette première partie décrira Debian comme un serveur MySQL et PHP. Le segment Linux du LAMP devrait déjà être fait en installant Debian 11 par l'article suivant sur TecMint :

  • Une nouvelle installation de Debian 11 Bullseye

Une fois que Debian est prête, il est maintenant temps d'installer les logiciels nécessaires à l'aide du méta-packager « apt ».

sudo apt install mariadb-server php libapache2-mod-php php-zip php-mbstring php-cli php-common php-curl php-xml php-mysql

2. Une fois l'installation de MySQL et PHP terminée, il est souvent recommandé de sécuriser l'installation de MySQL à l'aide de l'utilitaire mysql_secure_installation.

Une fois que vous avez exécuté la commande ci-dessous, elle demandera à l'utilisateur de définir le mot de passe root et de supprimer des éléments tels que les utilisateurs anonymes, de tester les bases de données et de supprimer la connexion de l'utilisateur root distant à la base de données SQL.

sudo mysql_secure_installation

3. Maintenant que MySQL est configuré, passons à la définition de quelques paramètres de base PHP pour ce serveur particulier. Bien qu'il existe de nombreux paramètres pouvant être configurés pour PHP, nous en ferons quelques-uns de base qui sont généralement toujours nécessaires.

Le fichier de configuration php ouvert se trouve dans /etc/php/7.4/apache2/php.ini.

sudo vi /etc/php/7.4/apache2/php.ini

Recherchez maintenant la chaîne « memory_limit » et augmentez la limite selon les besoins de votre application.

Un autre paramètre important à vérifier est le « max_execution_time » et encore une fois par défaut, il sera défini sur 30. Si une application nécessite davantage, ce paramètre peut être modifié.

À ce stade, MySQL et PHP5 sont prêts à commencer à héberger des sites. Il est maintenant temps de configurer Apache2.

Installation et configuration d'Apache2

4. Il est maintenant temps de configurer Apache 2 pour terminer la configuration du serveur LAMP. La première étape pour configurer Apache2 consiste à installer le logiciel à l'aide du méta-packager apt.

sudo apt install apache2

Cela installera tous les fichiers et dépendances nécessaires pour Apache2.

Une fois installé, le serveur Web Apache sera opérationnel et servira une page Web par défaut. Il existe plusieurs façons de confirmer que le serveur Web Apache est opérationnel. L'option la plus simple consiste à utiliser l'utilitaire lsof :

sudo lsof -i :80

L'autre option consiste simplement à accéder à l'adresse IP du serveur Web. En supposant une installation par défaut de Debian, le système sera probablement configuré pour utiliser DHCP pour obtenir automatiquement une adresse IP.

Pour déterminer l'adresse IP du serveur, l'un des deux utilitaires peut être utilisé. L’un ou l’autre utilitaire fonctionnera dans cette situation.

ip show addr			[Shown below in red]
ifconfig			[Shown below in green]

Quel que soit l'utilitaire utilisé, l'adresse IP obtenue peut être saisie dans un navigateur Web sur un ordinateur du même réseau pour confirmer qu'Apache affiche la page par défaut.

http://IP-Address

À ce stade, Apache est opérationnel. Bien que la page par défaut de Debian soit un site Web flashy, la plupart des utilisateurs souhaiteront héberger quelque chose de personnalisé. Les prochaines étapes passeront par la configuration d'Apache 2 pour héberger un autre site Web.

Hébergement de plusieurs sites Web avec Apache dans Debian

5. Debian a fourni quelques utilitaires utiles pour gérer à la fois les sites et les modules. Avant d’expliquer comment utiliser ces utilitaires, il est important de comprendre les fonctions qu’ils remplissent.

  • a2ensite : cet utilitaire est utilisé pour activer un site Web après la création du fichier de configuration approprié.
  • a2dissite : cet utilitaire est utilisé pour désactiver un site Web en spécifiant le fichier de configuration du site Web.
  • a2enmod : cet utilitaire est utilisé pour activer des modules Apache2 supplémentaires.
  • a2dismod : cet utilitaire est utilisé pour désactiver les modules Apache2 supplémentaires.
  • a2query : cet utilitaire peut être utilisé pour collecter des informations sur les sites actuellement activés.

Commençons par rassembler un peu d’expérience avec les deux premiers. Puisque Apache 2 héberge actuellement la « page Web par défaut », allons-y et désactivons-la avec a2dissite.

sudo a2dissite 000-default.conf

Cette commande désactivera le site Web Apache par défaut vu dans la capture d'écran ci-dessus. Cependant, pour que les modifications prennent effet, la configuration d'Apache 2 doit être rechargée.

sudo systemctl reload apache2

Cette commande demandera à Apache 2 de mettre à jour les sites activés/désactivés qu'il héberge actuellement. Cela peut être confirmé en essayant de vous connecter à nouveau à l'adresse IP du serveur Web et en remarquant que rien ne s'affiche (certains ordinateurs mettront les informations en cache, si la machine affiche toujours le site Web par défaut après l'exécution des deux commandes précédentes, essayez d'effacer le site Web). cache des navigateurs). Une autre option pour confirmer que le site n'est plus activé consiste à utiliser l'utilitaire a2query.

sudo a2query -s

Il se passe beaucoup de choses dans cette capture d’écran, alors décomposons les choses.

  • La case verte ci-dessus est a2query -s qui demande à Apache 2 d'indiquer quels sites sont actuellement servis.
  • La case jaune est a2dissite 000-default.conf suivi du rechargement du service apache2. Ces deux commandes demandent à Apache 2 de désactiver le site par défaut puis de recharger les sites actifs/inactifs.
  • La case rouge indique que a2query -s est à nouveau émis, mais notez que cette fois, Apache répond que rien n'est servi.

Passons maintenant à la création d'un site autre que celui par défaut. La première étape consiste à basculer vers le répertoire de configuration Apache 2 qui est /etc/apache2 à l'aide de l'utilitaire cd.

cd /etc/apache2

Il y a plusieurs fichiers et répertoires importants dans ce répertoire, cependant, par souci de concision, seuls les éléments essentiels seront couverts ici.

La première chose à faire lors de la création d'un nouveau site est de créer un nouveau fichier de configuration dans le répertoire « sites-available ». Changez de répertoire dans le répertoire « sites-available », puis créez un nouveau fichier de configuration.

cd sites-available
sudo cp 000-default.conf tecmint-test-site.conf

Cela copiera la configuration du site par défaut dans le nouveau fichier de configuration du site pour une modification ultérieure. Ouvrez la nouvelle page de configuration du site avec un éditeur de texte.

sudo vi tecmint-test-site.conf

Dans ce fichier, il y a une ligne très importante pour héberger un site Web, cette ligne est la ligne « DocumentRoot ». Cette ligne indique à Apache où se trouvent les fichiers Web nécessaires qu'il doit servir lorsque des demandes arrivent pour des ressources particulières.

Pour l’instant, cette ligne sera définie sur un répertoire qui n’existe pas mais qui le sera bientôt et contiendra un simple site Web à afficher par ce serveur Debian.

DocumentRoot /var/www/tecmint

Enregistrez les modifications apportées à ce fichier et quittez l'éditeur de texte.

Maintenant, le répertoire à partir duquel Apache 2 vient de recevoir les fichiers doit être créé et rempli de fichiers. Bien que cet article fonctionne avec des fichiers HTML, il n'y a probablement pas assez de temps pour expliquer comment créer un site Web entièrement fonctionnel et laisse ce processus au lecteur.

Créons donc le répertoire qu'Apache doit servir et ajoutons-y une page Web HTML de base appelée « index.html ».

sudo mkdir /var/www/tecmint
touch /var/www/tecmint/index.html
echo “It's ALIVE!” >> /var/www/tecmint/index.html

Les commandes ci-dessus créeront un nouveau répertoire appelé « tecmint » ainsi qu'un nouveau fichier appelé « index.html » dans le répertoire tecmint.

La commande echo placera du texte dans ce fichier afin qu'il affiche réellement quelque chose dans le navigateur Web lorsqu'Apache servira le site Web.

Remarque : La page créée pour ce tutoriel par l'auteur s'affichera différemment ! En utilisant désormais les commandes évoquées précédemment, Apache doit être invité à servir ce nouveau document HTML.


sudo a2ensite tecmint-test-site.conf
sudo systemctl reload apache2
sudo a2query -s tecmint-test-site.conf

La dernière commande ci-dessus confirmera simplement qu'Apache2 dessert effectivement le site Web nouvellement créé. À ce stade, naviguez à nouveau dans un navigateur Web jusqu'à l'adresse IP du serveur et voyez si le site Web nouvellement créé est affiché (encore une fois, les ordinateurs aiment mettre les données en cache et, par conséquent, plusieurs actualisations peuvent être nécessaires pour obtenir la nouvelle page Web).

Si le site « It's ALIVE !!! » nouvellement créé s'affiche, alors Apache 2 a été configuré avec succès et affiche le site Web.

Toutes nos félicitations! Bien qu'il s'agisse d'une configuration simple qui prépare un serveur Linux LAMP à héberger un site, des choses beaucoup plus complexes peuvent être effectuées et la configuration dépend grandement de cet objectif final.