Comment configurer le serveur LAMP sur Ubuntu 20.04 Focal Fossa
LAMP est un modèle conventionnel de piles de services Web. Les composants à partir desquels LAMP est construit sont tous open-source et comprennent : le système d’exploitation Linux, le serveur HTTP Apache, le système de gestion de base de données relationnelle MySQL et le langage de programmation PHP. Dans ce court tutoriel, nous allons configurer un serveur LAMP de base sur Ubuntu 20.04 Focal Fossa.
Vous pourriez également être intéressé par notre article sur la création d’une pile LAMP basée sur Docker sur Ubuntu 20.04.
Dans ce tutoriel, vous allez apprendre :
- Comment installer le serveur LAMP sur Ubuntu 20.04.
- Comment ouvrir le port du pare-feu pour autoriser le trafic entrant HTTP et HTTPS.
- Comment se connecter à une base de données MySQL à l’aide d’un script PHP.
Configuration du serveur LAMP sur Ubuntu 20.04 Focal Fossa
Configuration logicielle requise et conventions utilisées
| Catégorie | Exigences, conventions ou version du logiciel utilisé |
|---|---|
| Système | Installé Ubuntu 20.04 ou mis à jour Ubuntu 20.04 Focal Fossa |
| Logiciel | N/A |
| Autre | Accès privilégié à votre système Linux en tant que root ou via la commande sudo. |
Configuration du serveur LAMP sur Ubuntu 20.04 instructions étape par étape
Vous pouvez installer la pile de serveurs LAMP soit en utilisant la commande
aptet en incluant le nombre minimum de paquets :sudo apt install php-mysql libapache2-mod-php mysql-serverou en utilisant la commande
tasksel:sudo tasksel install lamp-serverActivez le démarrage de Mysql/MariaDB et Apache après le redémarrage :
sudo systemctl enable --now mysql sudo systemctl enable --now apache2Configurer la base de données MySQL/MariaDB. Tout d’abord, effectuez l’installation sécurisée :
sudo mysql_secure_installationEnsuite, testons la connexion à la base de données MySQL par programmation à l’aide d’un script PHP. Juste à des fins de test, nous utiliserons une politique de mot de passe
LOW. Connectez-vous à MySQL à partir de la ligne de commande :root@linuxconfig:~# mysql -u root -pDans les prochaines étapes, nous allons créer un exemple de base de données et un utilisateur. Tout d’abord, confirmez votre politique de mot de passe, puis créez un nouvel utilisateur
adminet accordez-lui tous les privilèges sur la nouvelle base de donnéeslinuxconfig:mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | LOW | | validate_password.special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.01 sec) mysql> CREATE DATABASE linuxconfig; mysql> CREATE USER `admin`@`localhost` IDENTIFIED WITH mysql_native_password BY 'yourpass'; mysql> GRANT ALL ON linuxconfig.* TO `admin`@`localhost`; mysql> FLUSH PRIVILEGES;Ensuite, créez le script PHP suivant appelé eg.
/var/www/html/php-mysql-connect.phppour vous connecter à votre base de données MySQL locale :<?php $conn = new mysqli("localhost", "admin", "yourpass", "linuxconfig"); if ($conn->connect_error) { die("ERROR: Unable to connect: " . $conn->connect_error); } echo 'Connected to the database. '; $conn->close(); ?>Rendez le script exécutable :
sudo chmod +x /var/www/html/php-mysql-connect.phpUne fois prêt, ouvrez et naviguez dans votre navigateur pour
http://localhost/php-mysql-connect.php:Utilisation d’un script PHP pour se connecter à la base de données MySQL sur Ubuntu 20.04
Activez éventuellement le
HTTPSpour fournir une connexion sécurisée à notre serveur Web Apache. Veuillez noter que nous utiliserons les paramètres par défaut d’Apache2 avec des certificats SSL auto-signés par défaut :Certificats SSL par défaut
Veuillez noter que nous utilisons les certificats SSL par défaut. Nous vous recommandons de télécharger vos certificats SSL ou d’utiliser Let’s Encrypt pour générer de nouveaux certificats pour votre ou vos domaines.sudo a2ensite default-ssl sudo a2enmod ssl sudo systemctl restart apache2Ensuite, accédez à
https://localhost/à l’aide de votre navigateur.
Enfin, ouvrez les ports de pare-feu 80 et 443 pour autoriser le trafic entrant à distance :
sudo ufw allow in "Apache Full"
Vous pouvez maintenant créer le script suivant /var/www/html/phpinfo.php avec le contenu ci-dessous pour voir vos paramètres de configuration LAMP et les modules activés :
<?php phpinfo(); ?>
N’oubliez pas de rendre le script PHP exécutable :
chmod +x /var/www/html/phpinfo.php
Utilisez l’URL suivante pour vous connecter à votre script phpinfo.php : http://YOURSERVER-OR-IP/phpinfo.php.
Dépannage
La méthode d’authentification demandée par le serveur est inconnue du client
Cette erreur signifie que vous ne pouvez pas authentifier votre utilisateur à l’aide d’un mot de passe. Cette méthode doit être spécifiquement activée. Essayez de mettre à jour vos paramètres utilisateur MySQL en exécutant la commande ci-dessous et en modifiant le nom d’utilisateur et le mot de passe de la commande MySQL ci-dessous pour les adapter à votre environnement :
mysql> ALTER user 'username'@'localhost' identified with mysql_native_password by 'password';
ERREUR 1819 (HY000) : Votre mot de passe ne répond pas aux exigences actuelles de la politique
Passez en revue votre politique de mot de passe et assurez-vous que le mot de passe indiqué est conforme aux exigences :
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
Vous pouvez également passer à une autre politique de mot de passe. Par exemple, la commande ci-dessous bascule vers la politique de mot de passe LOW :
mysql> SET GLOBAL validate_password.policy = LOW;

