Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Crea un server Web dell'istanza di computazione Oracle Cloud Infrastructure utilizzando un database OCI come backend principale
Introduzione
In questa esercitazione verrà creata un'applicazione a due livelli composta da un'istanza di computazione Oracle Cloud Infrastructure (OCI) che fungerà da server Web e da servizio di database OCI (MySQL). Sono stati creati un sito Web e un database di esempio e questo sito Web recupererà i dati dalla tabella del database OCI.
Obiettivi
-
Creeremo un'applicazione Web a due livelli in cui utilizzeremo un'istanza di computazione OCI rivolta alla rete Internet pubblica come frontend con il server Web PHP e NGINX e un MySQL Database privato con dati di esempio. Installare i moduli MySQL di PHP e creare un database con dati di esempio per accedere correttamente al sito Web e ai dati di esempio.
-
Task 1: creare una nuova rete VCN (Virtual Cloud Network).
-
Task 2: creare una nuova subnet pubblica e una nuova subnet privata.
-
Task 3: creare una nuova istanza di OCI Compute.
-
Task 4: Creare un nuovo motore MySQL Database.
-
Task 5: Creare un nuovo database con dati di esempio.
-
Task 6: Installare e configurare un server Web NGINX con PHP.
-
Task 7: Creare un sito Web che si connetta al database e visualizza i record su una pagina Web.
-
Task 1: creare una nuova rete VCN (Virtual Cloud Network)
È già stata creata una VCN, ma se è ancora necessario creare una nuova VCN, seguire l'esercitazione: Crea una nuova VCN con IPv6 abilitato.
Clicca sul menu hamburger dall'angolo in alto a sinistra. Fare clic su Networking cloud virtuale per verificare se la rete cloud virtuale esiste.
Per questa esercitazione è già disponibile una VCN.
Task 2: creare una nuova subnet pubblica e una nuova subnet privata
È già stata creata una subnet pubblica e privata, ma se è ancora necessario creare nuove subnet, seguire le esercitazioni: Creare una nuova subnet pubblica con IPv6 abilitato e Creare una subnet privata all'interno della VCN.
All'interno di questa VCN è disponibile una subnet pubblica e privata. Connetteremo l'istanza di OCI Compute alla subnet pubblica e il database OCI alla subnet privata.
Per rivedere le istanze di OCI Compute disponibili, fai clic sul menu hamburger nell'angolo in alto a sinistra.
Task 3: Creare una nuova istanza di OCI Compute
È già stata creata un'istanza di OCI Compute, ma se è ancora necessario creare una nuova istanza di OCI Compute, seguire l'esercitazione: Task 3: Creare una nuova istanza con IPv6 abilitato.
Fare clic su Istanze per rivedere le istanze di OCI Compute.
L'istanza di computazione rivolta al pubblico è attiva e in esecuzione.
Task 4: Creare un nuovo motore MySQL Database
-
Clicca sul menu hamburger dall'angolo in alto a sinistra.
- Fare clic su Database.
- Fai clic su MySQL HeatWave.
-
Fare clic su Crea sistema DB.
-
In Crea sistema DB, immettere le informazioni riportate di seguito.
- Selezionare Development o Testing.
- Immettere un nome.
- Scorri in basso.
-
Nella sezione Crea credenziali amministratore, immettere le informazioni riportate di seguito.
- Immettere il nome utente.
- Immettere la password.
- Immettere la conferma password.
- Selezionare Standalone.
- Scorri in basso.
- Selezionare la VCN per il database.
- Selezionare la subnet privata per connettersi al database.
- Scorri in basso.
-
Scorri in basso.
-
Fare clic su Crea per creare il database.
-
Verificare che lo stato del database sia CREATING.
Verificare che lo stato del database sia UPDATING.
- Verificare che lo stato del database sia ACTIVE.
- Fare clic sulla scheda Connessioni.
Rivedere l'indirizzo IP privato 10.0.2.247
che verrà utilizzato in seguito per configurare e accedere a MySQL Database.
Task 5: Creare un nuovo database con dati di esempio (1 tabella con 2 record)
-
Per accedere e configurare MySQL Database, è necessario installare la shell MySQL. Eseguire il comando seguente per l'installazione.
[opc@ih-webserver-01 ~]$ sudo yum install mysql-shell
-
Per accedere a MySQL Database, utilizzare il comando seguente.
Nota: non è possibile connettersi a MySQL Database e il motivo è che le porte del database non sono consentite nella lista di sicurezza predefinita.
-
Fare clic sul menu hamburger nella console OCI.
- Fare clic su Networking
- Fare clic su Reti cloud virtuali.
-
Fare clic sulla VCN.
-
Scorri in basso.
-
Fare clic su Elenchi di sicurezza e sulla lista di sicurezza predefinita.
-
Fare clic su Aggiungi regole di entrata.
-
In Aggiungi regole di entrata, immettere le informazioni riportate di seguito.
- Tipo di origine: selezionare CIDR.
- CIDR di origine: per consentire il traffico proveniente da tutte le origini, immettere
0.0.0.0/0
. - Protocollo IP: selezionare TCP.
- Intervallo di porte di destinazione: immettere 33060.
- Fare clic su Aggiungi regole di entrata.
-
Fare clic su Aggiungi regola di entrata.
-
In Aggiungi regole di entrata, immettere le informazioni riportate di seguito.
- Tipo di origine: selezionare CIDR.
- CIDR di origine: per consentire il traffico proveniente da tutte le origini, immettere
0.0.0.0/0
. - Protocollo IP: selezionare TCP.
- Intervallo di porte di destinazione: immettere 33060.
- Fare clic su Aggiungi regole di entrata.
- Scorri in basso.
- Controllare se le regole per le porte TCP
33060
e3306
sono configurate.
-
Dopo aver aggiunto le regole di entrata alla lista di sicurezza predefinita, siamo in grado di accedere al database OCI utilizzando la shell MySQL con il comando seguente.
[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 >
Ora siamo in grado di accedere al database OCI con successo.
-
Dopo aver effettuato l'accesso al database OCI con la shell MySQL, il comando seguente semplificherà l'uso abilitando il salvataggio automatico, la cronologia dei comandi e la modalità.
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')
-
Per visualizzare tutti i database esistenti, utilizzare il comando seguente.
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 >
-
Per creare un nuovo database, usare il comando seguente:
MySQL 10.0.2.247:33060+ ssl SQL > CREATE DATABASE F1; Query OK, 1 row affected (0.0066 sec)
-
Per verificare che il database sia stato creato, utilizzare il comando seguente.
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 >
-
Per utilizzare il nuovo database (per creare tabelle e record), utilizzare il comando seguente.
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 >
-
Per visualizzare tutte le tabelle esistenti nel database, utilizzare il comando seguente.
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 >
-
Per creare una nuova tabella con alcune colonne, utilizzare il comando seguente.
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 >
-
Per verificare tutte le tabelle nel database, utilizzare il comando seguente.
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 >
-
Per creare due nuovi record all'interno della tabella, utilizzare i comandi seguenti.
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 >
-
Per verificare la creazione di due nuovi record all'interno della tabella, utilizzare il comando seguente.
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 >
-
Per creare un nuovo utente e fornire i privilegi appropriati per il nuovo database, utilizzare il comando seguente.
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 >
-
Per verificare che il nuovo utente disponga dei privilegi appropriati per il database, utilizzare il comando seguente.
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 >
-
Per chiudere la shell MySQL, eseguire il comando
\q
.MySQL 10.0.2.247:33060+ ssl F1 SQL > \q Bye! [opc@ih-webserver-01 ~]$
Ora abbiamo un database di esempio con alcune tabelle di esempio e dati di esempio in esecuzione all'interno di OCI utilizzando il servizio MySQL del database OCI. Il prossimo compito è quello di recuperare questi dati utilizzando un sito Web PHP.
Task 6: Installare e configurare un server Web NGINX con PHP
È già presente un'istanza di computazione con NGNIX e PHP creati, ma se è ancora necessario creare una nuova istanza con NGNIX e PHP, seguire l'esercitazione: Task 6: Installa un server Web sull'istanza.
Nel precedente NGINX con PHP setup, non abbiamo installato alcun modulo MySQL PHP. Un rapido controllo sulla pagina Informazioni PHP lo confermerà.
-
Utilizzare il seguente comando per installare i moduli MySQL PHP in modo che NGINX e PHP possano lavorare insieme a 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]$
-
Eseguire il comando seguente per modificare il file
php.ini
.[opc@ih-webserver-01 testocidb]$ sudo nano /etc/php.ini
-
Assicurarsi che questa riga non sia commentata, in modo da poter caricare il modulo
mysqli.so
.extension=/usr/lib64/php/modules/mysqli.so
-
Utilizzare i seguenti comandi per riavviare i servizi NGINX e PHP.
[opc@ih-webserver-01 testocidb]$ sudo systemctl start php-fpm [opc@ih-webserver-01 testocidb]$ sudo systemctl restart nginx
-
La pagina Info PHP sta ora confermando l'installazione dei moduli MySQL PHP.
-
Per questo tutorial, stiamo utilizzando Oracle Linux 8 e questo si basa su SE Linux, dobbiamo eseguire il seguente comando per consentire al webserver (NGINX) di connettersi e accedere a MySQL Database.
[opc@ih-webserver-01 testocidb]$ sudo setsebool -P httpd_can_network_connect_db=1
Nota: non eseguire il comando precedente sul sito Web PHP, che potrebbe indicare un errore: Impossibile connettersi: impossibile connettersi al server MySQL.
Task 7: Creare un sito Web che si connetta al database e visualizzare i record in una pagina Web
-
Per impostare la directory del server Web sul percorso predefinito per i file del server Web, usare il comando seguente:
[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]$
-
Per creare una nuova directory per la nuova pagina Web di test, utilizzare il comando seguente.
[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]$
-
Spostarsi nella directory appena creata e creare un nuovo file
index.php
.Questo file sarà il sito Web di test per connettersi al database OCI, estrarre i dati dal database e visualizzarli sul sito Web.
[opc@ih-webserver-01 html]$ cd testocidb/ [opc@ih-webserver-01 testocidb]$ sudo nano index.php
-
Il codice HTML e PHP per il sito di test può essere trovato di seguito. Se si utilizza questa pagina Web, assicurarsi di modificare i dettagli dell'IP, del nome, del nome utente e della password del database.
A seconda della tabella del database e della struttura dei dati, è possibile modificare il codice per riflettere l'esempio.
[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]$
Quando ci connettiamo al sito /testocidb/index.php
, siamo in grado di accedere al sito con successo e, soprattutto, vedremo i dati memorizzati nel database.
Conferme
- Autore - Iwan Hoogendoorn (esperto di rete OCI)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Create an Oracle Cloud Infrastructure Compute Instance Webserver using an OCI Database as the main Backend
F94439-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.