Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se cadastrar em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Criar um Servidor Web da Instância do Oracle Cloud Infrastructure Compute usando um Banco de Dados do OCI como o Backend principal
Introdução
Neste tutorial, criaremos um aplicativo de duas camadas consistindo em uma instância do Oracle Cloud Infrastructure (OCI) Compute que atuará como servidor Web e um serviço OCI Database (MySQL). Criamos um site de amostra e um banco de dados e esse site recuperará os dados da tabela do OCI Database.
Objetivos
-
Criaremos um aplicativo web de duas camadas em que usaremos uma instância de computação do OCI voltada para a internet pública como frontend com servidor Web PHP e NGINX e um MySQL Database privado voltado para dados de amostra. Instale módulos PHP MySQL e crie um banco de dados com dados de amostra para acessar o site e dados de amostra com sucesso.
-
Tarefa 1: Criar uma nova rede virtual na nuvem (VCN).
-
Tarefa 2: Criar uma nova sub-rede pública e uma sub-rede privada.
-
Tarefa 3: Criar uma nova instância do OCI Compute.
-
Tarefa 4: Criar um novo mecanismo do MySQL Database.
-
Tarefa 5: Criar um novo banco de dados com dados de amostra.
-
Tarefa 6: Instale e configure um servidor Web NGINX com PHP.
-
Tarefa 7: Crie um site que se conecte ao banco de dados e exiba os registros em uma página da Web.
-
Tarefa 1: Criar uma nova VCN (Rede Virtual na Nuvem)
Já temos uma VCN criada, mas se você ainda precisar criar uma nova VCN, siga o tutorial: Criar uma Nova VCN com IPv6 Ativado.
Clique no menu de hambúrguer no canto superior esquerdo. Clique em Virtual Cloud Networking para verificar se a rede virtual na nuvem existe.
Para este tutorial, já temos uma VCN.
Tarefa 2: Criar uma nova Sub-rede Pública e uma Sub-rede Privada
Já temos uma sub-rede pública e privada criada, mas se você ainda precisar criar novas sub-redes, siga os tutoriais: Criar uma nova Sub-rede Pública com IPv6 Ativado e Criar uma Sub-rede Privada dentro da VCN.
Dentro dessa VCN, temos uma sub-rede pública e privada disponível. Conectaremos a instância do OCI Compute à sub-rede pública e o OCI Database à sub-rede privada.
Para revisar as instâncias do OCI Compute disponíveis, clique no menu de hambúrguer no canto superior esquerdo.
Tarefa 3: Criar uma nova Instância do OCI Compute
Já temos uma instância do OCI Compute criada, mas se você ainda precisar criar uma nova instância do OCI Compute, siga o tutorial: Tarefa 3: Criar uma Nova Instância com IPv6 Ativado.
Clique em Instâncias para revisar as instâncias do OCI Compute.
A instância de computação voltada para o público está ativa e em execução.
Tarefa 4: Criar um novo mecanismo do MySQL Database
-
Clique no menu de hambúrguer no canto superior esquerdo.
- Clique em Bancos de Dados.
- Clique em MySQL HeatWave.
-
Clique em Criar sistema de Banco de Dados.
-
Em Criar sistema de banco de dados, especifique as informações a seguir.
- Selecione Development or Testing.
- Digite um Nome.
- Rolar para Baixo.
-
Na seção Criar credenciais de administrador, digite as informações a seguir.
- Informe o Nome do Usuário.
- Informe a Senha.
- Informe a Confirmação de senha.
- Selecione Autônomo.
- Rolar para Baixo.
- Selecione a VCN do banco de dados.
- Selecione a sub-rede privada para conectar o banco de dados.
- Rolar para Baixo.
-
Rolar para Baixo.
-
Clique em Criar para criar o banco de dados.
-
Verifique se o status do banco de dados é CREATING.
Verifique se o status do banco de dados é UPDATING.
- Verifique se o status do banco de dados é ACTIVE.
- Clique na guia Conexões.
Verifique o endereço IP privado 10.0.2.247
que será usado posteriormente para configurar e acessar o MySQL Database.
Tarefa 5: Criar um novo Banco de Dados com Dados de Amostra (1 Tabela com 2 Registros)
-
Para acessar e configurar o MySQL Database, precisamos instalar o Shell MySQL. Execute o comando a seguir para instalar.
[opc@ih-webserver-01 ~]$ sudo yum install mysql-shell
-
Para acessar o MySQL Database, use o comando a seguir.
Observação: Não podemos estabelecer conexão com o MySQL Database, e o motivo disso é que não permitimos as portas do banco de dados na lista de segurança padrão.
-
Clique no menu de hambúrguer na Console do OCI.
- Clique em Networking
- Clique em Redes virtuais na nuvem.
-
Clique na VCN.
-
Rolar para Baixo.
-
Clique em Listas de Segurança e na lista de segurança padrão.
-
Clique em Adicionar Regras de Entrada.
-
Em Adicionar Regras de Entrada, digite as informações a seguir.
- Tipo de Origem: Selecione CIDR.
- CIDR de Origem: Para permitir o tráfego proveniente de todas as origens, digite
0.0.0.0/0
. - Protocolo IP: Selecione TCP.
- Intervalo de Portas de Destino: informe 33060.
- Clique em Adicionar Regras de Entrada.
-
Clique em Adicionar Regra de Entrada.
-
Em Adicionar Regras de Entrada, digite as informações a seguir.
- Tipo de Origem: Selecione CIDR.
- CIDR de Origem: Para permitir o tráfego proveniente de todas as origens, digite
0.0.0.0/0
. - Protocolo IP: Selecione TCP.
- Intervalo de Portas de Destino: informe 33060.
- Clique em Adicionar Regras de Entrada.
- Rolar para Baixo.
- Verifique se as regras das portas TCP
33060
e3306
estão configuradas.
-
Depois que as regras de entrada forem adicionadas à lista de segurança padrão, poderemos acessar o OCI Database usando o Shell MySQL com o comando a seguir.
[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 >
Agora podemos acessar o OCI Database com sucesso.
-
Depois de acessar o OCI Database com o Shell MySQL, o comando a seguir facilitará o uso ativando o salvamento automático, o histórico de comandos e o 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 exibir todos os bancos de dados existentes, use o comando a seguir.
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 criar um novo banco de dados, use o comando a seguir.
MySQL 10.0.2.247:33060+ ssl SQL > CREATE DATABASE F1; Query OK, 1 row affected (0.0066 sec)
-
Para verificar se o banco de dados foi criado, use o comando a seguir.
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 usar o novo banco de dados (para criar tabelas e registros), use o comando a seguir.
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 exibir todas as tabelas existentes no banco de dados, use o comando a seguir.
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 criar uma nova tabela com algumas colunas, use o comando a seguir.
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 as tabelas no banco de dados, use o comando a seguir.
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 criar dois novos registros dentro da tabela, use os comandos a seguir.
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 se dois novos registros foram criados dentro da tabela, use o comando a seguir.
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 criar um novo usuário e fornecer os privilégios adequados para o novo banco de dados, use o comando a seguir.
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 se o novo usuário tem os privilégios adequados no banco de dados, use o comando a seguir.
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 fechar o Shell MySQL, execute o comando
\q
.MySQL 10.0.2.247:33060+ ssl F1 SQL > \q Bye! [opc@ih-webserver-01 ~]$
Agora, temos um banco de dados de amostra com algumas tabelas de amostra e dados de amostra em execução no OCI usando o serviço MySQL do OCI Database. A próxima tarefa é recuperar esses dados usando um site PHP.
Tarefa 6: Instalar e Configurar um Servidor Web NGINX com PHP
Já temos uma instância de computação com NGNIX e PHP criados, mas se você ainda precisar criar uma nova instância com NGNIX e PHP, siga o tutorial: Tarefa 6: Instalar um Servidor Web na Instância.
No NGINX anterior com configuração PHP, não instalamos nenhum módulo PHP MySQL. Uma verificação rápida na página Informações do PHP confirmará isso.
-
Use o comando a seguir para instalar os módulos MySQL do PHP para que NGINX e PHP possam trabalhar juntos com 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]$
-
Execute o comando a seguir para editar o arquivo
php.ini
.[opc@ih-webserver-01 testocidb]$ sudo nano /etc/php.ini
-
Certifique-se de que essa linha não tenha comentários, para que o módulo
mysqli.so
possa ser carregado.extension=/usr/lib64/php/modules/mysqli.so
-
Use os comandos a seguir para reiniciar os serviços NGINX e PHP.
[opc@ih-webserver-01 testocidb]$ sudo systemctl start php-fpm [opc@ih-webserver-01 testocidb]$ sudo systemctl restart nginx
-
A página Informações do PHP está confirmando que os módulos PHP MySQL estão instalados.
-
Para este tutorial, estamos usando o Oracle Linux 8 e isso é baseado no SE Linux, precisamos executar o comando a seguir para permitir que o servidor Web (NGINX) conecte e acesse o MySQL Database.
[opc@ih-webserver-01 testocidb]$ sudo setsebool -P httpd_can_network_connect_db=1
Observação: não execute o comando acima no site do PHP, o que pode causar um erro: Não foi possível conectar-se: Não é possível conectar-se ao servidor MySQL.
Tarefa 7: Criar um Site que se Conecte ao Banco de Dados e Exibe os Registros em uma Página da Web
-
Para alterar o diretório no servidor Web para o caminho padrão dos arquivos do servidor Web, use o comando a seguir.
[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 criar um novo diretório para a nova página web de teste, use o comando a seguir.
[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]$
-
Altere o diretório para o diretório recém-criado e crie um novo arquivo
index.php
.Esse arquivo será o site de teste para estabelecer conexão com o OCI Database, extrair os dados do banco de dados e exibi-los no site.
[opc@ih-webserver-01 html]$ cd testocidb/ [opc@ih-webserver-01 testocidb]$ sudo nano index.php
-
O código HTML e PHP para o site de teste pode ser encontrado abaixo. Se você estiver usando esta página da Web, certifique-se de alterar os detalhes de IP, nome, nome de usuário e senha do banco de dados.
Dependendo da tabela do banco de dados e da estrutura de dados, você pode alterar o código para refletir seu exemplo.
[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 nos conectamos ao site /testocidb/index.php
, podemos acessar o site com sucesso e, o mais importante, veremos os dados armazenados no banco de dados.
Confirmação
- Autor - Iwan Hoogendoorn (Especialista em Rede OCI)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Create an Oracle Cloud Infrastructure Compute Instance Webserver using an OCI Database as the main Backend
F94442-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.