Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Création d'un serveur Web d'instance Oracle Cloud Infrastructure Compute à l'aide d'une base de données OCI en tant que back-end principal
Introduction
Dans ce tutoriel, nous allons créer une application à deux niveaux composée d'une instance Oracle Cloud Infrastructure (OCI) Compute qui agira en tant que serveur Web et service OCI Database (MySQL). Nous avons créé un exemple de site Web et de base de données. Ce site Web extrait les données de la table de base de données OCI.
Objectifs
-
Nous allons créer une application Web à deux niveaux où nous utiliserons une instance de calcul OCI orientée Internet public en tant que front-end avec le serveur Web PHP et NGINX et une instance de calcul MySQL Database orientée privée avec des données échantillon. Installez les modules PHP MySQL et créez une base de données avec des exemples de données pour accéder au site Web et obtenir des exemples de données avec succès.
-
Tâche 1 : créer un nouveau réseau cloud virtuel (VCN).
-
Tâche 2 : créer un sous-réseau public et un sous-réseau privé.
-
Tâche 3 : créer une instance OCI Compute.
-
Tâche 4 : créer un moteur MySQL Database.
-
Tâche 5 : créer une base de données avec des exemples de données.
-
Tâche 6 : Installez et configurez un serveur Web NGINX avec PHP.
-
Tâche 7 : Créez un site Web qui se connecte à la base de données et affiche les enregistrements sur une page Web.
-
Tâche 1 : création d'un réseau cloud virtuel (VCN)
Un VCN a déjà été créé, mais si vous devez encore créer un VCN, suivez le tutoriel : Create a New VCN with IPv6 Enabled.
Cliquez sur le menu hamburger dans le coin supérieur gauche. Cliquez sur Réseau cloud virtuel pour vérifier si le réseau cloud virtuel existe.
Pour ce tutoriel, nous avons déjà un VCN.
Tâche 2 : créer un sous-réseau public et un sous-réseau privé
Un sous-réseau public et privé a déjà été créé, mais si vous devez encore créer des sous-réseaux, suivez les tutoriels Création d'un sous-réseau public avec IPv6 activé et Création d'un sous-réseau privé dans le VCN.
Dans ce VCN, nous disposons d'un sous-réseau public et privé. Nous allons connecter l'instance OCI Compute au sous-réseau public et la base de données OCI au sous-réseau privé.
Pour consulter les instances OCI Compute disponibles, cliquez sur le menu hamburger dans l'angle supérieur gauche.
Tâche 3 : créer une instance OCI Compute
Une instance OCI Compute a déjà été créée, mais si vous devez toujours créer une instance OCI Compute, suivez le tutoriel Tâche 3 : création d'une instance avec IPv6 activé.
Cliquez sur Instances pour examiner les instances OCI Compute.
L'instance de calcul publique est en fonctionnement.
Tâche 4 : créer un moteur MySQL Database
-
Cliquez sur le menu hamburger dans le coin supérieur gauche.
- Cliquez sur Bases de données.
- Cliquez sur MySQL HeatWave.
-
Cliquez sur Créer un système de base de données.
-
Dans Créer un système de base de données, entrez les informations suivantes.
- Sélectionnez Development or Testing.
- Entrez un nom.
- Défiler vers le bas.
-
Dans la section Créer des informations d'identification d'administrateur, entrez les informations suivantes.
- Entrez le nom utilisateur.
- Entrez le mot de passe.
- Entrez le mot de passe de confirmation.
- Sélectionnez Autonome.
- Défiler vers le bas.
- Sélectionnez le VCN pour la base de données.
- Sélectionnez le sous-réseau privé pour connecter la base de données.
- Défiler vers le bas.
-
Défiler vers le bas.
-
Cliquez sur Créer pour créer la base de données.
-
Vérifiez que le statut de la base de données est CREATING.
Vérifiez que le statut de la base de données est UPDATING.
- Vérifiez que le statut de la base de données est ACTIVE.
- Cliquez sur l'onglet Connexions.
Consultez l'adresse IP privée 10.0.2.247
qui sera utilisée ultérieurement pour configurer MySQL Database et y accéder.
Tâche 5 : créer une base de données avec des données échantillon (1 table avec 2 enregistrements)
-
Pour accéder à MySQL Database et le configurer, nous devons installer le shell MySQL. Exécutez la commande suivante pour effectuer l'installation.
[opc@ih-webserver-01 ~]$ sudo yum install mysql-shell
-
Pour accéder à MySQL Database, utilisez la commande suivante.
Remarque : nous ne pouvons pas nous connecter à MySQL Database. La raison en est que nous n'avons pas autorisé les ports de base de données sur la liste de sécurité par défaut.
-
Cliquez sur le menu déroulant dans la console OCI.
- Cliquez sur Fonctions de réseau.
- Cliquez sur Réseaux cloud virtuels.
-
Cliquez sur le VCN.
-
Défiler vers le bas.
-
Cliquez sur Listes de sécurité et sur la liste de sécurité par défaut.
-
Cliquez sur Ajouter des règles entrantes.
-
Dans Ajouter des règles entrantes, entrez les informations suivantes.
- Type de source : sélectionnez CIDR.
- CIDR source : pour autoriser le trafic provenant de toutes les sources, entrez
0.0.0.0/0
. - Protocole IP : sélectionnez TCP.
- Plage de ports de destination : entrez 33060.
- Cliquez sur Ajouter des règles entrantes.
-
Cliquez sur Ajouter une règle entrante.
-
Dans Ajouter des règles entrantes, entrez les informations suivantes.
- Type de source : sélectionnez CIDR.
- CIDR source : pour autoriser le trafic provenant de toutes les sources, entrez
0.0.0.0/0
. - Protocole IP : sélectionnez TCP.
- Plage de ports de destination : entrez 33060.
- Cliquez sur Ajouter des règles entrantes.
- Défiler vers le bas.
- Vérifiez si les règles des ports TCP
33060
et3306
sont configurées.
-
Une fois les règles entrantes ajoutées à la liste de sécurité par défaut, nous pouvons accéder à la base de données OCI à l'aide du shell MySQL à l'aide de la commande suivante.
[opc@ih-webserver-01 ~]$ mysqlsh admin@10.0.2.247 Please provide the password for 'admin@10.0.2.247': **************** Save password for 'admin@10.0.2.247'? [Y]es/[N]o/Ne[v]er (default No): Y MySQL Shell 8.0.35 Copyright (c) 2016, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type '\help' or '\?' for help; '\quit' to exit. Creating a session to 'admin@10.0.2.247' Fetching schema names for auto-completion... Press ^C to stop. Your MySQL connection id is 50 (X protocol) Server version: 8.0.36-u1-cloud MySQL Enterprise - Cloud No default schema selected; type \use <schema> to set one. MySQL 10.0.2.247:33060+ ssl JS >
Nous pouvons désormais accéder à la base de données OCI.
-
Après avoir accédé à la base de données OCI avec le shell MySQL, la commande suivante facilite son utilisation en activant l'enregistrement automatique, l'historique des commandes et le mode.
MySQL 10.0.2.247:33060+ ssl JS > shell.options.setPersist('history.autoSave', 1) MySQL 10.0.2.247:33060+ ssl JS > shell.options.setPersist('history.maxSize', 5000) MySQL 10.0.2.247:33060+ ssl JS > shell.options.setPersist('defaultMode', 'sql')
-
Pour afficher toutes les bases de données existantes, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl SQL > SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | mysql_audit | | performance_schema | | sys | +--------------------+ 5 rows in set (0.0015 sec) MySQL 10.0.2.247:33060+ ssl SQL >
-
Pour créer une base de données, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl SQL > CREATE DATABASE F1; Query OK, 1 row affected (0.0066 sec)
-
Pour vérifier que la base de données a été créée, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl SQL > SHOW DATABASES; +--------------------+ | Database | +--------------------+ | F1 | | information_schema | | mysql | | mysql_audit | | performance_schema | | sys | +--------------------+ 6 rows in set (0.0010 sec) MySQL 10.0.2.247:33060+ ssl SQL >
-
Pour utiliser la nouvelle base de données (pour créer des tables et des enregistrements), utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl SQL > USE F1 Default schema set to `F1`. Fetching global names, object names from `F1` for auto-completion... Press ^C to stop. MySQL 10.0.2.247:33060+ ssl F1 SQL >
-
Pour afficher toutes les tables existantes de la base de données, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl F1 SQL > SHOW TABLES; Empty set (0.0013 sec) MySQL 10.0.2.247:33060+ ssl F1 SQL >
-
Pour créer une table avec certaines colonnes, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl F1 SQL > CREATE TABLE drivers(First_Name VARCHAR(50) NOT NULL,Last_Name VARCHAR(50) NOT NULL,PRIMARY KEY(Last_Name)); Query OK, 0 rows affected (0.0207 sec) MySQL 10.0.2.247:33060+ ssl F1 SQL >
-
Pour vérifier toutes les tables de la base de données, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl F1 SQL > DESCRIBE drivers; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | First_Name | varchar(50) | NO | | NULL | | | Last_Name | varchar(50) | NO | PRI | NULL | | +------------+-------------+------+-----+---------+-------+ 2 rows in set (0.0022 sec) MySQL 10.0.2.247:33060+ ssl F1 SQL >
-
Pour créer deux nouveaux enregistrements dans le tableau, utilisez les commandes suivantes.
MySQL 10.0.2.247:33060+ ssl F1 SQL > INSERT INTO drivers VALUE ("Max", "Verstappen"); Query OK, 1 row affected (0.0048 sec) MySQL 10.0.2.247:33060+ ssl F1 SQL > INSERT INTO drivers VALUE ("Sergio", "Pérez"); Query OK, 1 row affected (0.0024 sec) MySQL 10.0.2.247:33060+ ssl F1 SQL >
-
Pour vérifier que deux nouveaux enregistrements sont créés dans le tableau, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl F1 SQL > SELECT * FROM drivers; +------------+------------+ | First_Name | Last_Name | +------------+------------+ | Sergio | Pérez | | Max | Verstappen | +------------+------------+ 2 rows in set (0.0006 sec) MySQL 10.0.2.247:33060+ ssl F1 SQL >
-
Pour créer un utilisateur et fournir les privilèges appropriés pour la nouvelle base de données, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl SQL > CREATE USER 'iwan'@'%' IDENTIFIED WITH mysql_native_password BY 'XXX'; Query OK, 0 rows affected (0.0035 sec) MySQL 10.0.2.247:33060+ ssl SQL > GRANT ALL ON F1.* TO 'iwan'@'%'; Query OK, 0 rows affected (0.0037 sec) MySQL 10.0.2.247:33060+ ssl SQL >
-
Pour vérifier que le nouvel utilisateur dispose des privilèges appropriés sur la base de données, utilisez la commande suivante.
MySQL 10.0.2.247:33060+ ssl SQL > SHOW GRANTS FOR 'iwan'; +----------------------------------------------+ | Grants for iwan@% | +----------------------------------------------+ | GRANT USAGE ON *.* TO `iwan`@`%` | | GRANT ALL PRIVILEGES ON `F1`.* TO `iwan`@`%` | +----------------------------------------------+ 2 rows in set (0.0006 sec) MySQL 10.0.2.247:33060+ ssl SQL >
-
Pour fermer le shell MySQL, exécutez la commande
\q
.MySQL 10.0.2.247:33060+ ssl F1 SQL > \q Bye! [opc@ih-webserver-01 ~]$
Nous disposons désormais d'un exemple de base de données avec des exemples de tables et de données exécutées dans OCI à l'aide du service OCI Database MySQL. La tâche suivante est de récupérer ces données en utilisant un site Web PHP.
Tâche 6 : Installer et configurer un serveur Web NGINX avec PHP
Une instance de calcul avec NGNIX et PHP a déjà été créée, mais si vous devez encore créer une instance avec NGNIX et PHP, suivez le tutoriel Tâche 6 : installer un serveur Web sur une instance.
Dans le précédent NGINX avec configuration PHP, nous n'avons pas installé de modules PHP MySQL. Une vérification rapide sur la page PHP Info confirmera cela.
-
Utilisez la commande suivante pour installer les modules PHP MySQL afin que NGINX et PHP puissent fonctionner avec MySQL.
[opc@ih-webserver-01 html]$ sudo dnf install php php-common php-mysqlnd php-pecl-zip php-gd php-mbstring php-xml php-soap Last metadata expiration check: 2:28:09 ago on Fri 16 Feb 2024 08:40:17 AM GMT. Package php-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 is already installed. Package php-common-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 is already installed. Dependencies resolved. ====================================================================================================================== Package Architecture Version Repository Size ====================================================================================================================== Installing: php-gd x86_64 7.2.24-1.module+el8.2.0+5510+6771133c ol8_appstream 84 k php-mbstring x86_64 7.2.24-1.module+el8.2.0+5510+6771133c ol8_appstream 581 k php-mysqlnd x86_64 7.2.24-1.module+el8.2.0+5510+6771133c ol8_appstream 191 k php-pecl-zip x86_64 1.15.3-1.module+el8+5148+a558e3ee ol8_appstream 51 k php-soap x86_64 7.2.24-1.module+el8.2.0+5510+6771133c ol8_appstream 177 k php-xml x86_64 7.2.24-1.module+el8.2.0+5510+6771133c ol8_appstream 189 k Installing dependencies: gd x86_64 2.2.5-7.el8 ol8_appstream 144 k jbigkit-libs x86_64 2.1-14.el8 ol8_appstream 55 k libXpm x86_64 3.5.12-9.el8_7 ol8_appstream 58 k libjpeg-turbo x86_64 1.5.3-12.el8 ol8_appstream 157 k libtiff x86_64 4.0.9-29.el8_8 ol8_appstream 189 k libwebp x86_64 1.0.0-9.el8_9.1 ol8_appstream 273 k libzip x86_64 1.5.1-2.module+el8.2.0+5510+6771133c ol8_appstream 63 k php-pdo x86_64 7.2.24-1.module+el8.2.0+5510+6771133c ol8_appstream 123 k Transaction Summary ====================================================================================================================== Install 14 Packages Total download size: 2.3 M Installed size: 6.1 M Is this ok [y/N]: y Downloading Packages: (1/14): libXpm-3.5.12-9.el8_7.x86_64.rpm 253 kB/s | 58 kB 00:00 (2/14): jbigkit-libs-2.1-14.el8.x86_64.rpm 232 kB/s | 55 kB 00:00 (3/14): libjpeg-turbo-1.5.3-12.el8.x86_64.rpm 13 MB/s | 157 kB 00:00 (4/14): libtiff-4.0.9-29.el8_8.x86_64.rpm 19 MB/s | 189 kB 00:00 (5/14): gd-2.2.5-7.el8.x86_64.rpm 571 kB/s | 144 kB 00:00 (6/14): libwebp-1.0.0-9.el8_9.1.x86_64.rpm 22 MB/s | 273 kB 00:00 (7/14): libzip-1.5.1-2.module+el8.2.0+5510+6771133c.x86_64.rpm 846 kB/s | 63 kB 00:00 (8/14): php-gd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64.rpm 963 kB/s | 84 kB 00:00 (9/14): php-mbstring-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64.rpm 3.9 MB/s | 581 kB 00:00 (10/14): php-pdo-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64.rpm 1.9 MB/s | 123 kB 00:00 (11/14): php-mysqlnd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64.rpm 1.2 MB/s | 191 kB 00:00 (12/14): php-soap-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64.rpm 1.1 MB/s | 177 kB 00:00 (13/14): php-pecl-zip-1.15.3-1.module+el8+5148+a558e3ee.x86_64.rpm 308 kB/s | 51 kB 00:00 (14/14): php-xml-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64.rpm 1.8 MB/s | 189 kB 00:00 ---------------------------------------------------------------------------------------------------------------------- Total 3.9 MB/s | 2.3 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : libjpeg-turbo-1.5.3-12.el8.x86_64 1/14 Installing : libXpm-3.5.12-9.el8_7.x86_64 2/14 Installing : php-pdo-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 3/14 Installing : libzip-1.5.1-2.module+el8.2.0+5510+6771133c.x86_64 4/14 Installing : libwebp-1.0.0-9.el8_9.1.x86_64 5/14 Installing : jbigkit-libs-2.1-14.el8.x86_64 6/14 Running scriptlet: jbigkit-libs-2.1-14.el8.x86_64 6/14 Installing : libtiff-4.0.9-29.el8_8.x86_64 7/14 Installing : gd-2.2.5-7.el8.x86_64 8/14 Running scriptlet: gd-2.2.5-7.el8.x86_64 8/14 Installing : php-gd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 9/14 Installing : php-pecl-zip-1.15.3-1.module+el8+5148+a558e3ee.x86_64 10/14 Installing : php-mysqlnd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 11/14 Installing : php-xml-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 12/14 Installing : php-soap-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 13/14 Installing : php-mbstring-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 14/14 Running scriptlet: php-mbstring-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 14/14 Verifying : gd-2.2.5-7.el8.x86_64 1/14 Verifying : jbigkit-libs-2.1-14.el8.x86_64 2/14 Verifying : libXpm-3.5.12-9.el8_7.x86_64 3/14 Verifying : libjpeg-turbo-1.5.3-12.el8.x86_64 4/14 Verifying : libtiff-4.0.9-29.el8_8.x86_64 5/14 Verifying : libwebp-1.0.0-9.el8_9.1.x86_64 6/14 Verifying : libzip-1.5.1-2.module+el8.2.0+5510+6771133c.x86_64 7/14 Verifying : php-gd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 8/14 Verifying : php-mbstring-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 9/14 Verifying : php-mysqlnd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 10/14 Verifying : php-pdo-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 11/14 Verifying : php-pecl-zip-1.15.3-1.module+el8+5148+a558e3ee.x86_64 12/14 Verifying : php-soap-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 13/14 Verifying : php-xml-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 14/14 Installed: gd-2.2.5-7.el8.x86_64 jbigkit-libs-2.1-14.el8.x86_64 libXpm-3.5.12-9.el8_7.x86_64 libjpeg-turbo-1.5.3-12.el8.x86_64 libtiff-4.0.9-29.el8_8.x86_64 libwebp-1.0.0-9.el8_9.1.x86_64 libzip-1.5.1-2.module+el8.2.0+5510+6771133c.x86_64 php-gd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 php-mbstring-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 php-mysqlnd-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 php-pdo-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 php-pecl-zip-1.15.3-1.module+el8+5148+a558e3ee.x86_64 php-soap-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 php-xml-7.2.24-1.module+el8.2.0+5510+6771133c.x86_64 Complete! [opc@ih-webserver-01 html]$
-
Exécutez la commande suivante pour modifier le fichier
php.ini
.[opc@ih-webserver-01 testocidb]$ sudo nano /etc/php.ini
-
Assurez-vous que cette ligne n'est pas mise en commentaire afin que le module
mysqli.so
puisse être chargé.extension=/usr/lib64/php/modules/mysqli.so
-
Utilisez les commandes suivantes pour redémarrer les services NGINX et PHP.
[opc@ih-webserver-01 testocidb]$ sudo systemctl start php-fpm [opc@ih-webserver-01 testocidb]$ sudo systemctl restart nginx
-
La page PHP Info confirme maintenant l'installation des modules PHP MySQL.
-
Pour ce tutoriel, nous utilisons Oracle Linux 8 et cela est basé sur SE Linux, nous devons exécuter la commande suivante pour permettre au serveur Web (NGINX) de se connecter et d'accéder à MySQL Database.
[opc@ih-webserver-01 testocidb]$ sudo setsebool -P httpd_can_network_connect_db=1
Remarque : n'exécutez pas la commande ci-dessus sur le site Web PHP, ce qui peut générer une erreur : Impossible de se connecter : impossible de se connecter au serveur MySQL.
Tâche 7 : créer un site Web qui se connecte à la base de données et affiche les enregistrements sur une page Web
-
Pour remplacer le répertoire du serveur Web par le chemin par défaut des fichiers du serveur Web, utilisez la commande suivante.
[opc@ih-webserver-01 ~]$ cd /usr/share/nginx/html/ [opc@ih-webserver-01 html]$ ls -l total 60 -rw-r--r--. 1 root root 168 Feb 8 07:47 404.php -rw-r--r--. 1 root root 497 Oct 24 16:50 50x.html -rw-r--r--. 1 root root 7 Feb 8 09:54 Color -rw-r--r--. 1 root root 9731 Feb 8 10:18 Iwan-hoogendoorn.logo.png -rw-r--r--. 1 root root 15406 Feb 8 10:07 favicon.ico drwxr-xr-x. 2 root root 101 Feb 8 09:59 files -rw-r--r--. 1 root root 8 Feb 8 09:52 health.html -rw-r--r--. 1 root root 622 Feb 7 18:13 index.html.original -rw-r--r--. 1 root root 6504 Feb 8 10:23 index.php -rw-r--r--. 1 root root 18 Feb 7 19:28 info.php [opc@ih-webserver-01 html]$
-
Pour créer un répertoire pour la nouvelle page Web de test, utilisez la commande suivante.
[opc@ih-webserver-01 html]$ sudo mkdir testocidb [opc@ih-webserver-01 html]$ ls -l total 60 -rw-r--r--. 1 root root 168 Feb 8 07:47 404.php -rw-r--r--. 1 root root 497 Oct 24 16:50 50x.html -rw-r--r--. 1 root root 7 Feb 8 09:54 Color -rw-r--r--. 1 root root 9731 Feb 8 10:18 Iwan-hoogendoorn.logo.png -rw-r--r--. 1 root root 15406 Feb 8 10:07 favicon.ico drwxr-xr-x. 2 root root 101 Feb 8 09:59 files -rw-r--r--. 1 root root 8 Feb 8 09:52 health.html -rw-r--r--. 1 root root 622 Feb 7 18:13 index.html.original -rw-r--r--. 1 root root 6504 Feb 8 10:23 index.php -rw-r--r--. 1 root root 18 Feb 7 19:28 info.php drwxr-xr-x. 2 root root 6 Feb 16 09:47 testocidb [opc@ih-webserver-01 html]$
-
Passez au nouveau répertoire et créez un fichier
index.php
.Ce fichier sera le site Web de test permettant de se connecter à la base de données OCI, d'extraire les données de la base de données et de les afficher sur le site Web.
[opc@ih-webserver-01 html]$ cd testocidb/ [opc@ih-webserver-01 testocidb]$ sudo nano index.php
-
Le code HTML et PHP pour le site de test se trouve ci-dessous. Si vous utilisez cette page Web, veillez à modifier l'adresse IP, le nom, le nom utilisateur et le mot de passe de la base de données.
En fonction de votre table de base de données et de votre structure de données, vous pouvez modifier le code pour refléter votre exemple.
[opc@ih-webserver-01 testocidb]$ sudo more index.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Database Records</title> <style> table{ width: 70%; margin: auto; font-family: Arial, Helvetica, sans-serif; } table, tr, th, td{ border: 1px solid #d4d4d4; border-collapse: collapse; padding: 12px; } th, td{ text-align: left; vertical-align: top; } tr:nth-child(even){ background-color: #e7e9eb; } </style> <body> <?php //storing database details in variables. $hostname = "10.0.2.247"; $username = "iwan"; $password = "XXX"; $dbname = "F1"; //creating connection to database $con = mysqli_connect($hostname, $username, $password, $dbname); //checking if connection is working or not if(!$con) { die("<p><center>Connection failed! <br></center></p>" . mysqli_connect_error()); } else { echo "<p><center>Successfully Connected! <br></center></p>"; } //Output Form Entries from the Database $sql = "SELECT First_Name, Last_Name FROM drivers"; //fire query $result = mysqli_query($con, $sql); if(mysqli_num_rows($result) > 0) { echo '<table> <tr> <th> First Name </th> <th> Last Name </th> </tr>'; while($row = mysqli_fetch_assoc($result)){ // to output mysql data in HTML table format echo '<tr > <td>' . $row["First_Name"] . '</td> <td>' . $row["Last_Name"] . '</td>'; } echo '</table>'; } else { echo "0 results"; } // closing connection mysqli_close($con); ?> </body> </html> [opc@ih-webserver-01 testocidb]$
Lorsque nous sommes connectés au site /testocidb/index.php
, nous sommes en mesure d'accéder au site avec succès et surtout nous verrons les données stockées dans la base de données.
Remerciements
- Auteur - Iwan Hoogendoorn (spécialiste du réseau OCI)
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Create an Oracle Cloud Infrastructure Compute Instance Webserver using an OCI Database as the main Backend
F94438-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.