Recherche de site Web

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égorieExigences, conventions ou version du logiciel utilisé
SystèmeInstallé Ubuntu 20.04 ou mis à jour Ubuntu 20.04 Focal Fossa
LogicielN/A
AutreAccè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

  1. Vous pouvez installer la pile de serveurs LAMP soit en utilisant la commande apt et en incluant le nombre minimum de paquets :

    sudo apt install php-mysql libapache2-mod-php mysql-server
    

    ou en utilisant la commande tasksel :

    sudo tasksel install lamp-server
    
  2. Activez le démarrage de Mysql/MariaDB et Apache après le redémarrage :

    sudo systemctl enable --now mysql
    sudo systemctl enable --now apache2
    
  3. Configurer la base de données MySQL/MariaDB. Tout d’abord, effectuez l’installation sécurisée :

    sudo mysql_secure_installation
    

    Ensuite, 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 -p
    

    Dans 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 admin et accordez-lui tous les privilèges sur la nouvelle base de données linuxconfig :

    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.php pour 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.php
    

    Une 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

  4. Activez éventuellement le HTTPS pour 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 apache2
    

    Ensuite, accédez à https://localhost/ à l’aide de votre navigateur.

  5. 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;

Articles connexes: