Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la capa gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al completar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Creación de un servidor web de instancia informática de Oracle Cloud Infrastructure mediante una base de datos de OCI como backend principal
Introducción
En este tutorial, crearemos una aplicación de dos niveles que constará de una instancia informática de Oracle Cloud Infrastructure (OCI) que actuará como servidor web y un servicio de base de datos de OCI (MySQL). Hemos creado un sitio web y una base de datos de ejemplo, y este sitio web recuperará los datos de la tabla OCI Database.
Objetivos
-
Crearemos una aplicación web de dos niveles en la que utilizaremos una instancia informática de OCI orientada a la red pública de Internet como frontend con el servidor web PHP y NGINX y una instancia de MySQL Database orientada a la privacidad con datos de ejemplo. Instale módulos PHP MySQL y cree una base de datos con datos de muestra para acceder al sitio web y datos de muestra correctamente.
-
Tarea 1: Creación de una nueva red virtual en la nube (VCN).
-
Tarea 2: Crear una nueva subred pública y una subred privada.
-
Tarea 3: Crear una nueva instancia de OCI Compute.
-
Tarea 4: Crear un nuevo motor de MySQL Database.
-
Tarea 5: Crear una nueva base de datos con datos de ejemplo.
-
Tarea 6: Instalar y configurar un servidor web NGINX con PHP.
-
Tarea 7: Crear un sitio web que se conecte a la base de datos y muestre los registros en una página web.
-
Tarea 1: Creación de una nueva red virtual en la nube (VCN)
Ya tenemos una VCN creada, pero si aún necesita crear una nueva VCN, siga el tutorial: Creación de una nueva VCN con IPv6 activado.
Haga clic en el menú de hamburguesa de la esquina superior izquierda. Haga clic en Redes virtuales en la nube para verificar si existe la red virtual en la nube.
Para este tutorial, ya tenemos una VCN.
Tarea 2: Creación de una nueva subred pública y una subred privada
Ya tenemos una subred pública y privada creada, pero si aún necesita crear nuevas subredes, siga los tutoriales: Creación de una nueva subred pública con IPv6 activado y Creación de una subred privada dentro de la VCN.
Dentro de esta VCN, tenemos una subred pública y privada disponible. Conectaremos la instancia de OCI Compute a la subred pública y la base de datos de OCI a la subred privada.
Para revisar las instancias de OCI Compute disponibles, haga clic en el menú de hamburguesa de la esquina superior izquierda.
Tarea 3: Creación de una nueva instancia informática de OCI
Ya tenemos una instancia de OCI Compute creada, pero si aún necesita crear una nueva instancia de OCI Compute, siga el tutorial: Tarea 3: creación de una nueva instancia con IPv6 activado.
Haga clic en Instancias para revisar las instancias de OCI Compute.
La instancia informática orientada al público está activa y en ejecución.
Tarea 4: Creación de un nuevo motor de MySQL Database
-
Haga clic en el menú de hamburguesa de la esquina superior izquierda.
- Haga clic en Base de datos.
- Haga clic en MySQL HeatWave.
-
Haga clic en Crear sistema de base de datos.
-
En Crear sistema de base de datos, introduzca la siguiente información.
- Seleccione Desarrollo o prueba.
- Introduzca un Nombre.
- Desplazar hacia abajo.
-
En la sección Crear credenciales de administrador, introduzca la siguiente información.
- Introduzca el Usuario.
- Introduzca la contraseña.
- Introduzca la confirmación de contraseña.
- Seleccione Autónomo.
- Desplazar hacia abajo.
- Seleccione la VCN para la base de datos.
- Seleccione la subred privada para conectar la base de datos.
- Desplazar hacia abajo.
-
Desplazar hacia abajo.
-
Haga clic en Crear para crear la base de datos.
-
Revise que el estado de la base de datos sea CREATING.
Revise que el estado de la base de datos sea ACTUALIZANDO.
- Revise que el estado de la base de datos sea ACTIVE.
- Haga clic en el separador Conexiones.
Revise la dirección IP privada 10.0.2.247
que se utilizará más adelante para configurar y acceder a MySQL Database.
Tarea 5: Creación de una nueva base de datos con datos de ejemplo (1 tabla con 2 registros)
-
Para acceder y configurar MySQL Database, necesitamos instalar MySQL Shell. Ejecute el siguiente comando para realizar la instalación.
[opc@ih-webserver-01 ~]$ sudo yum install mysql-shell
-
Para acceder a MySQL Database, utilice el siguiente comando.
Nota: No podemos conectarnos a MySQL Database y el motivo es que no hemos permitido los puertos de base de datos en la lista de seguridad por defecto.
-
Haga clic en el menú de hamburguesa de la consola de OCI.
- Haga clic en Red.
- Haga clic en Redes virtuales en la nube.
-
Haga clic en la VCN.
-
Desplazar hacia abajo.
-
Haga clic en Listas de seguridad y en la lista de seguridad por defecto.
-
Haga clic en Agregar reglas de entrada.
-
En Agregar reglas de entrada, introduzca la siguiente información.
- Tipo de origen: seleccione CIDR.
- CIDR de origen: para permitir el tráfico procedente de todos los orígenes, introduzca
0.0.0.0/0
. - Protocolo IP: seleccione TCP.
- Rango de puertos de destino: introduzca 33060.
- Haga clic en Agregar reglas de entrada.
-
Haga clic en Agregar regla de entrada.
-
En Agregar reglas de entrada, introduzca la siguiente información.
- Tipo de origen: seleccione CIDR.
- CIDR de origen: para permitir el tráfico procedente de todos los orígenes, introduzca
0.0.0.0/0
. - Protocolo IP: seleccione TCP.
- Rango de puertos de destino: introduzca 33060.
- Haga clic en Agregar reglas de entrada.
- Desplazar hacia abajo.
- Revise si las reglas para los puertos TCP
33060
y3306
están configuradas.
-
Después de agregar las reglas de entrada a la lista de seguridad por defecto, podemos acceder a la base de datos de OCI mediante el shell MySQL con el siguiente comando.
[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 >
Ahora podemos acceder a la base de datos de OCI correctamente.
-
Después de acceder a la base de datos de OCI con el shell MySQL, el siguiente comando facilitará su uso activando el guardado automático, el historial de comandos y el modo.
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')
-
Para mostrar todas las bases de datos existentes, utilice el siguiente comando.
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 >
-
Para crear una nueva base de datos, utilice el siguiente comando.
MySQL 10.0.2.247:33060+ ssl SQL > CREATE DATABASE F1; Query OK, 1 row affected (0.0066 sec)
-
Para verificar que se ha creado la base de datos, utilice el siguiente comando.
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 >
-
Para utilizar la nueva base de datos (para crear tablas y registros), utilice el siguiente comando.
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 >
-
Para mostrar todas las tablas existentes en la base de datos, utilice el siguiente comando.
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 >
-
Para crear una nueva tabla con algunas columnas, utilice el siguiente comando.
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 >
-
Para verificar todas las tablas de la base de datos, utilice el siguiente comando.
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 >
-
Para crear dos nuevos registros dentro de la tabla, utilice los siguientes comandos.
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 >
-
Para verificar que se han creado dos nuevos registros dentro de la tabla, utilice el siguiente comando.
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 >
-
Para crear un nuevo usuario y proporcionar los privilegios adecuados para la nueva base de datos, utilice el siguiente comando.
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 >
-
Para verificar que el nuevo usuario tiene los privilegios adecuados en la base de datos, utilice el siguiente comando.
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 >
-
Para cerrar el shell MySQL, ejecute el comando
\q
.MySQL 10.0.2.247:33060+ ssl F1 SQL > \q Bye! [opc@ih-webserver-01 ~]$
Ahora, tenemos una base de datos de ejemplo con algunas tablas de ejemplo y datos de ejemplo que se ejecutan dentro de OCI mediante el servicio MySQL de OCI Database. La siguiente tarea es recuperar estos datos utilizando un sitio web PHP.
Tarea 6: Instalación y configuración de un servidor web NGINX con PHP
Ya tenemos una instancia informática con NGNIX y PHP creados, pero si aún necesita crear una nueva instancia con NGNIX y PHP, siga el tutorial: Tarea 6: Instalación de un servidor web en instancia.
En la configuración anterior de NGINX con PHP, no instalamos ningún módulo PHP MySQL. Una comprobación rápida en la página de información de PHP confirmará esto.
-
Utilice el siguiente comando para instalar los módulos PHP MySQL de modo que NGINX y PHP puedan trabajar junto con 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]$
-
Ejecute el siguiente comando para editar el archivo
php.ini
.[opc@ih-webserver-01 testocidb]$ sudo nano /etc/php.ini
-
Asegúrese de que esta línea no tenga comentarios, de modo que se pueda cargar el módulo
mysqli.so
.extension=/usr/lib64/php/modules/mysqli.so
-
Utilice los siguientes comandos para reiniciar los servicios NGINX y PHP.
[opc@ih-webserver-01 testocidb]$ sudo systemctl start php-fpm [opc@ih-webserver-01 testocidb]$ sudo systemctl restart nginx
-
La página de información de PHP ahora confirma que los módulos MySQL de PHP están instalados.
-
Para este tutorial, estamos utilizando Oracle Linux 8 y esto se basa en SE Linux, necesitamos ejecutar el siguiente comando para permitir que el servidor web (NGINX) se conecte y acceda a MySQL Database.
[opc@ih-webserver-01 testocidb]$ sudo setsebool -P httpd_can_network_connect_db=1
Nota: No ejecute el comando anterior en el sitio web de PHP, lo que puede producir un error: No se pudo conectar: no se puede conectar al servidor MySQL.
Tarea 7: Creación de un sitio web que se conecte a la base de datos y muestre los registros en una página web
-
Para cambiar el directorio del servidor web a la ruta predeterminada para los archivos del servidor web, utilice el siguiente comando.
[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]$
-
Para crear un nuevo directorio para la nueva página web de prueba, utilice el siguiente comando.
[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]$
-
Cambie el directorio al directorio creado recientemente y cree un nuevo archivo
index.php
.Este archivo será el sitio web de prueba para conectarse a la base de datos de OCI, extraer los datos de la base de datos y mostrarlos en el sitio web.
[opc@ih-webserver-01 html]$ cd testocidb/ [opc@ih-webserver-01 testocidb]$ sudo nano index.php
-
El código HTML y PHP para el sitio web de prueba se puede encontrar a continuación. Si utiliza esta página web, asegúrese de cambiar los detalles de IP, nombre, nombre de usuario y contraseña de la base de datos.
En función de la tabla de base de datos y la estructura de datos, puede cambiar el código para reflejar el ejemplo.
[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]$
Cuando nos conectamos al sitio web /testocidb/index.php
, podemos acceder al sitio web con éxito y, lo más importante, veremos los datos almacenados en la base de datos.
Confirmaciones
- Autor: Iwan Hoogendoorn (especialista en redes de OCI)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Create an Oracle Cloud Infrastructure Compute Instance Webserver using an OCI Database as the main Backend
F94437-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.