Comment installer la pile Linux, Apache, MySQL, PHP (LAMP) sur Ubuntu 20.04

De Get Docs
Aller à :navigation, rechercher

Introduction

Une pile "LAMP" est un groupe de logiciels open source qui sont généralement installés ensemble afin de permettre à un serveur d'héberger des sites Web dynamiques et des applications Web écrites en PHP. Ce terme est un acronyme qui représente le système d'exploitation Linux, avec le serveur web Apache. Les données du site sont stockées dans une base de données MySQL, et le contenu dynamique est traité par PHP.

Dans ce guide, vous allez configurer une pile LAMP sur un serveur Ubuntu 20.04.

Conditions préalables

Pour terminer ce didacticiel, vous aurez besoin d'un serveur Ubuntu 20.04 avec un compte d'utilisateur compatible sudo non root et un pare-feu de base. Cela peut être configuré à l'aide de notre guide de configuration initiale du serveur pour Ubuntu 20.04.

Étape 1 - Installation d'Apache et mise à jour du pare-feu

Le serveur Web Apache est l'un des serveurs Web les plus populaires au monde. Il est bien documenté, possède une communauté active d'utilisateurs et a été largement utilisé pendant une grande partie de l'histoire du Web, ce qui en fait un excellent choix pour l'hébergement d'un site Web.

Commencez par mettre à jour le cache du gestionnaire de packages. Si c'est la première fois que vous utilisez sudo dans cette session, vous serez invité à fournir votre mot de passe utilisateur pour confirmer que vous disposez des privilèges appropriés pour gérer les packages système avec apt.

sudo apt update

Ensuite, installez Apache avec :

sudo apt install apache2

Vous serez également invité à confirmer l'installation d'Apache en appuyant sur Y, puis sur ENTER.

Une fois l'installation terminée, vous devrez ajuster les paramètres de votre pare-feu pour autoriser le trafic HTTP. UFW a différents profils d'application que vous pouvez exploiter pour y parvenir. Pour répertorier tous les profils d'application UFW actuellement disponibles, vous pouvez exécuter :

sudo ufw app list

Vous verrez une sortie comme celle-ci :

OutputAvailable applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Voici ce que chacun de ces profils signifie :

  • Apache : ce profil ouvre uniquement le port 80 (trafic Web normal non chiffré).
  • Apache Full : ce profil ouvre à la fois le port 80 (trafic Web normal non chiffré) et le port 443 (trafic chiffré TLS/SSL).
  • Apache Secure : ce profil ouvre uniquement le port 443 (trafic chiffré TLS/SSL).

Pour l'instant, il est préférable de n'autoriser que les connexions sur le port 80, puisqu'il s'agit d'une nouvelle installation d'Apache et que vous n'avez toujours pas de certificat TLS/SSL configuré pour autoriser le trafic HTTPS sur votre serveur.

Pour autoriser uniquement le trafic sur le port 80, utilisez le profil Apache :

sudo ufw allow in "Apache"

Vous pouvez vérifier le changement avec :

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                                
Apache                     ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)                    
Apache (v6)                ALLOW       Anywhere (v6)     

Le trafic sur le port 80 est désormais autorisé via le pare-feu.

Vous pouvez faire une vérification ponctuelle tout de suite 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 la rubrique suivante pour savoir quelle est votre adresse IP publique si vous n'avez pas cette information déjà):

http://your_server_ip

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

Si vous voyez cette page, votre serveur Web est maintenant correctement installé et accessible via votre pare-feu.

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 plusieurs façons. Il s'agit généralement de l'adresse que vous utilisez pour vous connecter à votre serveur via SSH.

Il existe plusieurs façons de procéder à partir de la ligne de commande. Tout d'abord, vous pouvez utiliser les outils iproute2 pour obtenir votre adresse IP en tapant ceci :

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

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

Une autre méthode consiste à utiliser l'utilitaire curl pour contacter une partie extérieure pour vous dire comment it voit votre serveur. Cela se fait en demandant à un serveur spécifique quelle est votre adresse IP :

curl http://icanhazip.com

Quelle que soit la méthode que vous utilisez pour obtenir votre adresse IP, saisissez-la dans la barre d'adresse de votre navigateur Web pour afficher la page Apache par défaut.

Étape 2 - Installation de MySQL

Maintenant que vous avez un serveur Web opérationnel, vous devez installer le système de base de données pour pouvoir stocker et gérer les données de votre site. MySQL est un système de gestion de base de données populaire utilisé dans les environnements PHP.

Encore une fois, utilisez apt pour acquérir et installer ce logiciel :

sudo apt install mysql-server

Lorsque vous y êtes invité, confirmez l'installation en tapant Y, puis ENTER.

Une fois l'installation terminée, il est recommandé d'exécuter un script de sécurité préinstallé avec MySQL. Ce script supprimera certains paramètres par défaut non sécurisés et verrouillera l'accès à votre système de base de données. Démarrez le script interactif en exécutant :

sudo mysql_secure_installation

Cela vous demandera si vous souhaitez configurer le VALIDATE PASSWORD PLUGIN.

Remarque : L'activation de cette fonctionnalité relève du jugement. Si activé, les mots de passe qui ne correspondent pas aux critères spécifiés seront rejetés par MySQL avec une erreur. Il est prudent de laisser la validation désactivée, mais vous devez toujours utiliser des mots de passe forts et uniques pour les informations d'identification de la base de données.


Répondez Y pour oui, ou quoi que ce soit d'autre pour continuer sans activer.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

Si vous répondez « oui », il vous sera demandé de sélectionner un niveau de validation du mot de passe. Gardez à l'esprit que si vous entrez 2 pour le niveau le plus fort, vous recevrez des erreurs lorsque vous tenterez de définir un mot de passe qui ne contient pas de chiffres, de lettres majuscules et minuscules et de caractères spéciaux, ou qui est basé sur un dictionnaire commun. mots.

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary              file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Que vous ayez choisi ou non de configurer le VALIDATE PASSWORD PLUGIN, votre serveur vous demandera ensuite de sélectionner et de confirmer un mot de passe pour l'utilisateur MySQL root. Cela ne doit pas être confondu avec la racine système. L'utilisateur base de données racine est un utilisateur administratif disposant de tous les privilèges sur le système de base de données. Même si la méthode d'authentification par défaut pour l'utilisateur racine MySQL dispense l'utilisation d'un mot de passe, même lorsqu'il est défini, vous devez définir ici un mot de passe fort comme mesure de sécurité supplémentaire. Nous en reparlerons dans un instant.

Si vous avez activé la validation du mot de passe, vous verrez la force du mot de passe root que vous venez de saisir et votre serveur vous demandera si vous souhaitez continuer avec ce mot de passe. Si vous êtes satisfait de votre mot de passe actuel, entrez Y pour « oui » à l'invite :

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Pour le reste des questions, appuyez sur Y et appuyez sur la touche ENTER à chaque invite. Cela supprimera certains utilisateurs anonymes et la base de données de test, désactivera les connexions root à distance et chargera ces nouvelles règles afin que MySQL respecte immédiatement les modifications que vous avez apportées.

Lorsque vous avez terminé, testez si vous pouvez vous connecter à la console MySQL en tapant :

sudo mysql

Cela se connectera au serveur MySQL en tant qu'utilisateur de la base de données administrative root, ce qui est déduit par l'utilisation de sudo lors de l'exécution de cette commande. Vous devriez voir une sortie comme celle-ci :

OutputWelcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.19-0ubuntu5 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Pour quitter la console MySQL, tapez :

exit

Notez que vous n'avez pas eu besoin de fournir un mot de passe pour vous connecter en tant qu'utilisateur root, même si vous en avez défini un lors de l'exécution du script mysql_secure_installation. En effet, la méthode d'authentification par défaut pour l'utilisateur administratif MySQL est unix_socket au lieu de password. Même si cela peut sembler un problème de sécurité au premier abord, cela rend le serveur de base de données plus sécurisé car les seuls utilisateurs autorisés à se connecter en tant qu'utilisateur MySQL root sont les utilisateurs système avec des privilèges sudo se connectant depuis la console ou via une application fonctionnant avec les mêmes privilèges. Concrètement, cela signifie que vous ne pourrez pas utiliser l'utilisateur de la base de données administrative root pour vous connecter depuis votre application PHP. La définition d'un mot de passe pour le compte MySQL root fonctionne comme une protection, au cas où la méthode d'authentification par défaut est modifiée de unix_socket à password.

Pour une sécurité accrue, il est préférable d'avoir des comptes d'utilisateurs dédiés avec des privilèges moins étendus configurés pour chaque base de données, surtout si vous prévoyez d'avoir plusieurs bases de données hébergées sur votre serveur.

Remarque : Au moment d'écrire ces lignes, la bibliothèque PHP MySQL native mysqlnd ne prend pas en charge caching_sha2_authentication, la méthode d'authentification par défaut pour MySQL 8 . Pour cette raison, lors de la création d'utilisateurs de base de données pour les applications PHP sur MySQL 8, vous devez vous assurer qu'ils sont configurés pour utiliser mysql_native_password à la place. Nous vous montrerons comment procéder à l'Étape 6.


Votre serveur MySQL est maintenant installé et sécurisé. Ensuite, nous allons installer PHP, le dernier composant de la pile LAMP.

Étape 3 - Installation de PHP

Apache est installé pour servir votre contenu et MySQL est installé pour stocker et gérer vos données. PHP est le composant de notre configuration qui traitera le code pour afficher le contenu dynamique à l'utilisateur final. En plus du package php, vous aurez besoin de php-mysql, un module PHP qui permet à PHP de communiquer avec des bases de données basées sur MySQL. Vous aurez également besoin de libapache2-mod-php pour permettre à Apache de gérer les fichiers PHP. Les packages PHP principaux seront automatiquement installés en tant que dépendances.

Pour installer ces packages, exécutez :

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

Une fois l'installation terminée, vous pouvez exécuter la commande suivante pour confirmer votre version de PHP :

php -v
OutputPHP 7.4.3 (cli) (built: Jul  5 2021 15:13:35) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

À ce stade, votre pile LAMP est pleinement opérationnelle, mais avant de pouvoir tester votre configuration avec un script PHP, il est préférable de configurer un Apache Virtual Host approprié pour contenir les fichiers et dossiers de votre site Web. Nous le ferons à l'étape suivante.

Étape 4 - Création d'un hôte virtuel pour votre site Web

Lorsque vous utilisez le serveur Web Apache, vous pouvez créer des hôtes virtuels (similaires aux blocs de serveur dans Nginx) pour encapsuler les détails de configuration et héberger plusieurs domaines à partir d'un seul serveur. Dans ce guide, nous allons configurer un domaine appelé votre_domaine, mais vous devez le remplacer par votre propre nom de domaine.

Remarque : Si vous utilisez DigitalOcean comme fournisseur d'hébergement DNS, vous pouvez consulter nos documents sur les produits pour obtenir des instructions détaillées sur la configuration d'un nouveau nom de domaine et le faire pointer vers votre serveur.


Apache sur Ubuntu 20.04 a un bloc serveur activé par défaut qui est configuré pour servir les documents du répertoire /var/www/html. Bien que cela fonctionne bien pour un seul site, cela peut devenir compliqué si vous hébergez plusieurs sites. Au lieu de modifier /var/www/html, nous allons créer une structure de répertoires dans /var/www pour le site votre_domaine, en laissant /var/www/html en place comme répertoire par défaut à servi si une demande client ne correspond à aucun autre site.

Créez le répertoire pour votre_domaine comme suit :

sudo mkdir /var/www/your_domain

Ensuite, attribuez la propriété du répertoire avec la variable d'environnement $USER, qui fera référence à votre utilisateur système actuel :

sudo chown -R $USER:$USER /var/www/your_domain

Ensuite, ouvrez un nouveau fichier de configuration dans le répertoire sites-available d'Apache à l'aide de votre éditeur de ligne de commande préféré. Ici, nous utiliserons nano :

sudo nano /etc/apache2/sites-available/your_domain.conf

Cela créera un nouveau fichier vierge. Collez la configuration simple suivante :

/etc/apache2/sites-available/votre_domaine.conf

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain 
    ServerAdmin [email protected]
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Enregistrez et fermez le fichier lorsque vous avez terminé. Si vous utilisez nano, vous pouvez le faire en appuyant sur CTRL+X, puis Y et ENTER.

Avec cette configuration VirtualHost, nous disons à Apache de servir your_domain en utilisant /var/www/your_domain comme répertoire racine Web. Si vous souhaitez tester Apache sans nom de domaine, vous pouvez supprimer ou commenter les options ServerName et ServerAlias en ajoutant un caractère # au début de chaque option. lignes.

Vous pouvez maintenant utiliser a2ensite pour activer le nouvel hôte virtuel :

sudo a2ensite your_domain

Vous souhaiterez peut-être désactiver le site Web par défaut installé avec Apache. Ceci est nécessaire si vous n'utilisez pas de nom de domaine personnalisé, car dans ce cas, la configuration par défaut d'Apache écraserait votre hôte virtuel. Pour désactiver le site Web par défaut d'Apache, tapez :

sudo a2dissite 000-default

Pour vous assurer que votre fichier de configuration ne contient pas d'erreurs de syntaxe, exécutez :

sudo apache2ctl configtest

Enfin, rechargez Apache pour que ces modifications prennent effet :

sudo systemctl reload apache2

Votre nouveau site Web est maintenant actif, mais la racine Web /var/www/your_domain est toujours vide. Créez un fichier index.html à cet emplacement afin que nous puissions tester que l'hôte virtuel fonctionne comme prévu :

nano /var/www/your_domain/index.html

Inclure le contenu suivant dans ce fichier :

/var/www/votre_domaine/index.html

<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

Allez maintenant dans votre navigateur et accédez à nouveau au nom de domaine ou à l'adresse IP de votre serveur :

http://server_domain_or_IP

Vous verrez une page comme celle-ci :

Si vous voyez cette page, cela signifie que votre hôte virtuel Apache fonctionne comme prévu.

Vous pouvez laisser ce fichier en place comme page de destination temporaire pour votre application jusqu'à ce que vous configuriez un fichier index.php pour le remplacer. Une fois que vous avez fait cela, n'oubliez pas de supprimer ou de renommer le fichier index.html de la racine de votre document, car il aurait priorité sur un fichier index.php par défaut.

Une note à propos de DirectoryIndex sur Apache

Avec les paramètres DirectoryIndex par défaut sur Apache, un fichier nommé index.html aura toujours priorité sur un fichier index.php. Ceci est utile pour mettre en place des pages de maintenance dans les applications PHP, en créant un fichier temporaire index.html contenant un message informatif aux visiteurs. Comme cette page aura préséance sur la page index.php, elle deviendra alors la page d'accueil de l'application. Une fois la maintenance terminée, le index.html est renommé ou supprimé de la racine du document, ramenant la page d'application normale.

Si vous souhaitez modifier ce comportement, vous devrez modifier le fichier /etc/apache2/mods-enabled/dir.conf et modifier l'ordre dans lequel le fichier index.php est répertorié dans la directive DirectoryIndex :

sudo nano /etc/apache2/mods-enabled/dir.conf

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Après avoir enregistré et fermé le fichier, vous devrez recharger Apache pour que les modifications prennent effet :

sudo systemctl reload apache2

Dans l'étape suivante, nous allons créer un script PHP pour tester que PHP est correctement installé et configuré sur votre serveur.

Étape 5 - Test du traitement PHP sur votre serveur Web

Maintenant que vous disposez d'un emplacement personnalisé pour héberger les fichiers et dossiers de votre site Web, nous allons créer un script de test PHP pour confirmer qu'Apache est capable de gérer et de traiter les demandes de fichiers PHP.

Créez un nouveau fichier nommé info.php dans votre dossier racine Web personnalisé :

nano /var/www/your_domain/info.php

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

/var/www/votre_domaine/info.php

<?php
phpinfo();

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

Pour tester ce script, accédez à votre navigateur Web et accédez au nom de domaine ou à l'adresse IP de votre serveur, suivi du nom du script, qui dans ce cas est info.php :

http://server_domain_or_IP/info.php

Vous verrez une page semblable à celle-ci :

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

Si vous pouvez voir cette page dans votre navigateur, votre installation PHP fonctionne comme prévu.

Après avoir vérifié les informations pertinentes sur votre serveur PHP via cette page, il est préférable de supprimer le fichier que vous avez créé car il contient des informations sensibles sur votre environnement PHP et votre serveur Ubuntu. Vous pouvez utiliser rm pour cela :

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

Vous pouvez toujours recréer cette page si vous avez besoin d'accéder à nouveau aux informations ultérieurement.

Étape 6 - Test de la connexion à la base de données à partir de PHP (facultatif)

Si vous souhaitez tester si PHP est capable de se connecter à MySQL et d'exécuter des requêtes de base de données, vous pouvez créer une table de test avec des données factices et interroger son contenu à partir d'un script PHP. Avant de pouvoir le faire, nous devons créer une base de données de test et un nouvel utilisateur MySQL correctement configuré pour y accéder.

Au moment d'écrire ces lignes, la bibliothèque PHP native de MySQL mysqlnd ne prend pas en charge caching_sha2_authentication, la méthode d'authentification par défaut pour MySQL 8. Nous devrons créer un nouvel utilisateur avec la méthode d'authentification mysql_native_password afin de pouvoir se connecter à la base de données MySQL depuis PHP.

Nous allons créer une base de données nommée example_database et un utilisateur nommé example_user, mais vous pouvez remplacer ces noms par des valeurs différentes.

Tout d'abord, connectez-vous à la console MySQL en utilisant le compte root :

sudo mysql

Pour créer une nouvelle base de données, exécutez la commande suivante depuis votre console MySQL :

CREATE DATABASE example_database;

Vous pouvez maintenant créer un nouvel utilisateur et lui accorder tous les privilèges sur la base de données personnalisée que vous venez de créer.

La commande suivante crée un nouvel utilisateur nommé example_user, en utilisant mysql_native_password comme méthode d'authentification par défaut. Nous définissons le mot de passe de cet utilisateur comme password, mais vous devez remplacer cette valeur par un mot de passe sécurisé de votre choix.

CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Nous devons maintenant donner à cet utilisateur l'autorisation sur la base de données example_database :

GRANT ALL ON example_database.* TO 'example_user'@'%';

Cela donnera à l'utilisateur example_user tous les privilèges sur la base de données example_database, tout en empêchant cet utilisateur de créer ou de modifier d'autres bases de données sur votre serveur.

Quittez maintenant le shell MySQL avec :

exit

Vous pouvez tester si le nouvel utilisateur dispose des autorisations appropriées en vous connectant à nouveau à la console MySQL, cette fois en utilisant les informations d'identification personnalisées :

mysql -u example_user -p

Remarquez l'indicateur -p dans cette commande, qui vous demandera le mot de passe utilisé lors de la création de l'utilisateur example_user. Après vous être connecté à la console MySQL, confirmez que vous avez accès à la base de données example_database :

SHOW DATABASES;

Cela vous donnera la sortie suivante :

Output+--------------------+
| Database           |
+--------------------+
| example_database   |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)

Ensuite, nous allons créer une table de test nommée todo_list. Depuis la console MySQL, exécutez l'instruction suivante :

CREATE TABLE example_database.todo_list (
   item_id INT AUTO_INCREMENT,
   content VARCHAR(255),
   PRIMARY KEY(item_id)
);

Insérez quelques lignes de contenu dans le tableau de test. Vous voudrez peut-être répéter la commande suivante plusieurs fois, en utilisant des valeurs différentes :

INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

Pour confirmer que les données ont bien été enregistrées dans votre table, exécutez :

SELECT * FROM example_database.todo_list;

Vous verrez le résultat suivant :

Output+---------+--------------------------+
| item_id | content                  |
+---------+--------------------------+
|       1 | My first important item  |
|       2 | My second important item |
|       3 | My third important item  |
|       4 | and this one more thing  |
+---------+--------------------------+
4 rows in set (0.000 sec)

Après avoir confirmé que vous disposez de données valides dans votre table de test, vous pouvez quitter la console MySQL :

exit

Vous pouvez maintenant créer le script PHP qui se connectera à MySQL et demandera votre contenu. Créez un nouveau fichier PHP dans votre répertoire racine Web personnalisé à l'aide de votre éditeur préféré. Nous utiliserons nano pour cela :

nano /var/www/your_domain/todo_list.php

Le script PHP suivant se connecte à la base de données MySQL et interroge le contenu de la table todo_list, affichant les résultats dans une liste. S'il y a un problème avec la connexion à la base de données, il lèvera une exception. Copiez ce contenu dans votre script todo_list.php :

/var/www/votre_domaine/todo_list.php

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>TODO</h2><ol>"; 
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

Enregistrez et fermez le fichier lorsque vous avez terminé l'édition.

Vous pouvez maintenant accéder à cette page dans votre navigateur Web en visitant le nom de domaine ou l'adresse IP publique configurée pour votre site Web, suivi de /todo_list.php :

http://your_domain_or_IP/todo_list.php

Vous devriez voir une page comme celle-ci, montrant le contenu que vous avez inséré dans votre tableau de test :

Cela signifie que votre environnement PHP est prêt à se connecter et à interagir avec votre serveur MySQL.

Conclusion

Dans ce guide, nous avons construit une base flexible pour servir des sites Web et des applications PHP à vos visiteurs, en utilisant Apache comme serveur Web et MySQL comme système de base de données.

Comme prochaine étape immédiate, vous devez vous assurer que les connexions à votre serveur Web sont sécurisées, en les servant via HTTPS. Pour ce faire, vous pouvez utiliser Let's Encrypt pour sécuriser votre site avec un certificat TLS/SSL gratuit.