Académique Documents
Professionnel Documents
Culture Documents
A.U : 2022/2023
TP 2 - Création d’une base de données dans un Cloud
avec une application de test
Objectif :
L’objectif de ce TP est de créer une base de données dans un Cloud (AWS) puis de la faire
connecter à une application PHP de test.
Les étapes de réalisation du TP :
- Création d’une base de données MySQL.
- Connexion à la machine virtuelle du serveur Web Apache déjà créée précédemment
dans le TP 1.
- Création d’une application PHP dans le serveur Web et faire la connexion entre cette
application et la base de données.
1
i. Sur la page Créer une base de données, vérifiez que l'option Création standard est
activée, puis choisissez MySQL.
2
iii. Dans la section Classe d'instance de base de données, définissez les valeurs
suivantes :
Remarque :
Amazon RDS offre de nombreux types d'instances optimisés pour différents cas
d'utilisation de base de données relationnelle. Ces types d'instances correspondent à
différentes combinaisons en termes de capacités de CPU, de mémoire, de stockage et
de mise en réseau. Chaque type d'instance inclut plusieurs tailles d'instance, ce qui
vous permet de mettre à l'échelle vos bases de données en fonction des exigences de
la charge de travail ciblée.
Par exemple, les instances db.t3 (choisies dans ce TP) sont conçues pour les charges
de travail de base de données nécessitant une utilisation modérée du CPU avec des
pics d’utilisation temporaires.
3
iv. Dans les sections Stockage, utilisez les valeurs par défaut.
4
vi. Pour créer votre instance de base de données MySQL, choisissez Créer une base de
données.
Votre nouvelle instance de base de données apparaît dans la liste Bases de données avec l'état
Création en cours.
5
vii. Attendez que l’état de votre instance de base de données affiche Disponible.
Sélectionnez ensuite le nom de l'instance de base de données pour afficher les détails.
6
Tache 2 : Création de l’application de test
7
2) Création d’une table dans la base de données
Il est possible de créer la table à partir d’un client MySQL connecté à la base de données.
Dans cet exemple, la connexion est faite à partir du client MySQL déjà installé dans
l’instance du serveur Web.
[ec2-user@ip-XXXXXXX ~]$ sudo mysql -h database-
XXXXXXXXXXX.rds.amazonaws.com -u admin -padminadmin
MySQL [(none)]> CREATE DATABASE db1;
MySQL [(none)]> use db1;
MySQL [db1]> CREATE TABLE EMPLOYEES (ID int(11) UNSIGNED
AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(45), ADDRESS
VARCHAR(90));
MySQL [db1]> exit
3) Ajout d’une application PHP dans le serveur web Apache
[ec2-user@ip-XXXXXXX ~]$ cd /var/www/html
[ec2-user@ip-XXXXXXX ~]$ sudo nano test-php-bd.php
8
<?php
define('DB_SERVER', 'database-XXXXXXXXXXX.rds.amazonaws.com');
define('DB_USERNAME', 'admin');
define('DB_PASSWORD', 'xxxxxxxx');
define('DB_DATABASE', 'db1');
?>
<html>
<body>
<h1>Test Page PHP</h1>
<?php
/* Connect to MySQL and select the database. */
$connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
if (strlen($employee_name) || strlen($employee_address)) {
AddEmployee($connection, $employee_name, $employee_address);
}
?>
<!-- Input form -->
<form action="<?PHP echo $_SERVER['SCRIPT_NAME'] ?>" method="POST">
<table border="0">
<tr>
<td>NAME</td>
<td>ADDRESS</td>
</tr>
<tr>
<td>
<input type="text" name="NAME" maxlength="45" size="30" />
</td>
<td>
<input type="text" name="ADDRESS" maxlength="90" size="60" />
</td>
<td>
<input type="submit" value="Add Data" />
</td>
</tr>
</table>
</form>
<!-- Display table data. -->
<table border="1" cellpadding="2" cellspacing="2">
<tr>
<td>ID</td>
<td>NAME</td>
<td>ADDRESS</td>
</tr>
<?php
$result = mysqli_query($connection, "SELECT * FROM EMPLOYEES");
while($query_data = mysqli_fetch_row($result)) {
echo "<tr>";
echo "<td>",$query_data[0], "</td>",
"<td>",$query_data[1], "</td>",
"<td>",$query_data[2], "</td>";
echo "</tr>";
}
?>
</table>
<!-- Clean up. -->
<?php
mysqli_free_result($result);
mysqli_close($connection);
?>
</body>
</html>
<?php
/* Add an employee to the table. */
function AddEmployee($connection, $name, $address) {
$n = mysqli_real_escape_string($connection, $name);
$a = mysqli_real_escape_string($connection, $address);
$query = "INSERT INTO EMPLOYEES (NAME, ADDRESS) VALUES ('$n', '$a');";
if(!mysqli_query($connection, $query)) echo("<p>Error adding employee data.</p>");
}
/* Check whether the table exists and, if not, create it. */
function VerifyEmployeesTable($connection, $dbName) {
if(!TableExists("EMPLOYEES", $connection, $dbName))
{
$query = "CREATE TABLE EMPLOYEES (
ID int(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(45),
ADDRESS VARCHAR(90)
)";
$checktable = mysqli_query($connection,
"SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = '$t' AND TABLE_SCHEMA = '$d'");
return false;
}
?>
9
Pour tester l’application (remarque : utilisez http et non https)
http://XXXXXXX.compute-1.amazonaws.com/test-php-bd.php
10