주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마칠 때는 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
OCI 데이터베이스를 기본 백엔드로 사용하여 Oracle Cloud Infrastructure Compute 인스턴스 웹 서버 생성
소개
이 사용지침서에서는 웹 서버 및 OCI 데이터베이스 서비스(MySQL)로 작동할 OCI(Oracle Cloud Infrastructure) 컴퓨트 인스턴스로 구성된 2계층 애플리케이션을 생성합니다. 샘플 웹 사이트와 데이터베이스를 생성했으며 이 웹 사이트는 OCI 데이터베이스 테이블에서 데이터를 검색합니다.
목표
-
PHP 및 NGINX 웹 서버의 프론트엔드로 향하는 공용 인터넷 및 샘플 데이터가 포함된 전용 MySQL Database인 OCI 컴퓨트 인스턴스를 사용할 2계층 웹 애플리케이션을 생성합니다. PHP MySQL 모듈을 설치하고 샘플 데이터로 데이터베이스를 생성하여 웹 사이트 및 샘플 데이터에 성공적으로 액세스하십시오.
-
작업 1: 새 VCN(가상 클라우드 네트워크)을 생성합니다.
-
작업 2: 새 공용 서브넷 및 전용 서브넷을 생성합니다.
-
작업 3: 새 OCI 컴퓨트 인스턴스를 생성합니다.
-
작업 4: 새 MySQL Database 엔진을 생성합니다.
-
작업 5: 예제 데이터로 새 데이터베이스를 생성합니다.
-
작업 6: PHP로 NGINX 웹 서버를 설치하고 구성합니다.
-
작업 7: 데이터베이스에 연결하고 웹 페이지에 레코드를 표시하는 웹 사이트를 생성합니다.
-
작업 1: 새 VCN(가상 클라우드 네트워크) 생성
VCN이 이미 생성되었지만 새 VCN을 생성해야 하는 경우 자습서 IPv6이 사용으로 설정된 새 VCN 생성을 따르십시오.
왼쪽 상단 모서리에서 햄버거 메뉴를 클릭합니다. 가상 클라우드 네트워킹을 눌러 가상 클라우드 네트워크가 존재하는지 확인합니다.
이 자습서에서는 이미 VCN이 있습니다.
작업 2: 새 공용 서브넷 및 전용 서브넷 생성
공용 및 전용 서브넷이 이미 생성되었지만 새 서브넷을 생성해야 하는 경우 자습서 IPv6가 사용으로 설정된 새 공용 서브넷 생성 및 VCN 내에 전용 서브넷 생성을 따르십시오.
이 VCN 내에는 공용 및 전용 서브넷을 사용할 수 있습니다. OCI 컴퓨팅 인스턴스를 공용 서브넷에 연결하고 OCI 데이터베이스를 전용 서브넷에 연결합니다.
사용 가능한 OCI 컴퓨트 인스턴스를 검토하려면 왼쪽 상단 모서리에서 햄버거 메뉴를 누릅니다.
작업 3: 새 OCI 컴퓨트 인스턴스 생성
OCI 컴퓨트 인스턴스가 이미 생성되었지만, 새 OCI 컴퓨트 인스턴스를 생성해야 하는 경우 자습서 작업 3: IPv6가 사용으로 설정된 새 인스턴스 생성을 따르십시오.
인스턴스를 눌러 OCI 컴퓨트 인스턴스를 검토합니다.
공용 컴퓨트 인스턴스가 작동되어 실행 중입니다.
작업 4: 새 MySQL Database 엔진 생성
-
왼쪽 상단 모서리에서 햄버거 메뉴를 클릭합니다.
- 데이터베이스를 누릅니다.
- MySQL HeatWave를 누릅니다.
-
Create DB system을 누릅니다.
-
DB 시스템 생성에 다음 정보를 입력합니다.
- Development or Testing을 선택합니다.
- 이름을 입력합니다.
- 아래로.
-
관리자 인증서 생성 섹션에서 다음 정보를 입력합니다.
- 사용자 이름을 입력합니다.
- 비밀번호를 입력합니다.
- 비밀번호 확인을 입력합니다.
- 독립형을 선택합니다.
- 아래로.
- 데이터베이스에 대한 VCN 선택.
- 데이터베이스에 접속할 전용 서브넷을 선택합니다.
- 아래로.
-
아래로.
-
생성을 눌러 데이터베이스를 생성합니다.
-
데이터베이스 상태가 CREATING인지 검토합니다.
데이터베이스 상태가 UPDATING인지 검토합니다.
- 데이터베이스 상태가 ACTIVE인지 검토합니다.
- 접속 탭을 누릅니다.
나중에 MySQL Database를 구성하고 액세스하는 데 사용할 전용 IP 주소 10.0.2.247
을 검토합니다.
작업 5: 샘플 데이터로 새 데이터베이스 생성(레코드 2개가 있는 테이블 1개)
-
MySQL Database에 액세스하고 구성하려면 MySQL Shell을 설치해야 합니다. 다음 명령을 실행하여 설치합니다.
[opc@ih-webserver-01 ~]$ sudo yum install mysql-shell
-
MySQL Database에 액세스하려면 다음 명령을 사용합니다.
주: MySQL Database에 연결할 수 없으며, 그 이유는 기본 보안 목록에서 데이터베이스 포트를 허용하지 않았기 때문입니다.
-
OCI 콘솔에서 햄버거 메뉴를 누릅니다.
- 네트워킹을 누릅니다.
- 가상 클라우드 네트워크를 누릅니다.
-
VCN을 누릅니다.
-
아래로.
-
보안 목록 및 기본 보안 목록을 누릅니다.
-
수신 규칙 추가를 누릅니다.
-
수신 규칙 추가에 다음 정보를 입력합니다.
- 소스 유형: CIDR을 선택합니다.
- 소스 CIDR: 모든 소스에서 오는 트래픽을 허용하려면
0.0.0.0/0
를 입력합니다. - IP 프로토콜: TCP를 선택합니다.
- 대상 포트 범위: 33060을 입력합니다.
- 수신 규칙 추가를 누릅니다.
-
수신 규칙 추가를 누릅니다.
-
수신 규칙 추가에 다음 정보를 입력합니다.
- 소스 유형: CIDR을 선택합니다.
- 소스 CIDR: 모든 소스에서 오는 트래픽을 허용하려면
0.0.0.0/0
를 입력합니다. - IP 프로토콜: TCP를 선택합니다.
- 대상 포트 범위: 33060을 입력합니다.
- 수신 규칙 추가를 누릅니다.
- 아래로.
- TCP 포트
33060
및3306
에 대한 규칙이 구성되었는지 검토합니다.
-
수신 규칙이 기본 보안 목록에 추가되면 다음 명령과 함께 MySQL 셸을 사용하여 OCI 데이터베이스에 액세스할 수 있습니다.
[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 >
이제 OCI 데이터베이스에 성공적으로 액세스할 수 있습니다.
-
MySQL Shell을 사용하여 OCI 데이터베이스에 액세스한 후 다음 명령을 사용하면 자동 저장, 명령 내역 및 모드를 사용으로 설정하여 더 쉽게 사용할 수 있습니다.
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')
-
기존 데이터베이스를 모두 표시하려면 다음 명령을 사용합니다.
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 >
-
새 데이터베이스를 생성하려면 다음 명령을 사용하십시오.
MySQL 10.0.2.247:33060+ ssl SQL > CREATE DATABASE F1; Query OK, 1 row affected (0.0066 sec)
-
데이터베이스가 생성되었는지 확인하려면 다음 명령을 사용합니다.
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 >
-
새 데이터베이스를 사용하여 테이블과 레코드를 생성하려면 다음 명령을 사용합니다.
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 >
-
데이터베이스에 있는 모든 기존 테이블을 표시하려면 다음 명령을 사용합니다.
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 >
-
일부 열이 포함된 새 테이블을 생성하려면 다음 명령을 사용합니다.
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 >
-
데이터베이스에 있는 모든 테이블을 확인하려면 다음 명령을 사용합니다.
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 >
-
테이블 내에 두 개의 새 레코드를 생성하려면 다음 명령을 사용합니다.
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 >
-
테이블 내에 두 개의 새 레코드가 생성되었는지 확인하려면 다음 명령을 사용합니다.
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 >
-
새 사용자를 생성하고 새 데이터베이스에 대한 적절한 권한을 제공하려면 다음 명령을 사용합니다.
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 >
-
새 사용자에게 데이터베이스에 대한 적절한 권한이 있는지 확인하려면 다음 명령을 사용합니다.
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 >
-
MySQL 셸을 닫으려면
\q
명령을 실행합니다.MySQL 10.0.2.247:33060+ ssl F1 SQL > \q Bye! [opc@ih-webserver-01 ~]$
이제 OCI Database MySQL 서비스를 사용하여 OCI 내에서 실행되는 샘플 테이블 및 샘플 데이터가 포함된 샘플 데이터베이스가 있습니다. 다음 작업은 PHP 웹 사이트를 사용하여이 데이터를 검색하는 것입니다.
작업 6: PHP로 NGINX 웹 서버 설치 및 구성
NGNIX 및 PHP가 생성된 컴퓨트 인스턴스가 이미 있지만 NGNIX 및 PHP를 사용하여 새 인스턴스를 생성해야 하는 경우 자습서 작업 6: 인스턴스에 웹 서버 설치를 따르십시오.
이전 NGINX PHP 설정에서는 PHP MySQL 모듈을 설치하지 않았습니다. PHP 정보 페이지에 대한 빠른 확인은 이것을 확인합니다.
-
다음 명령을 사용하여 PHP MySQL 모듈을 설치하면 NGINX 및 PHP가 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]$
-
다음 명령을 실행하여
php.ini
파일을 편집합니다.[opc@ih-webserver-01 testocidb]$ sudo nano /etc/php.ini
-
mysqli.so
모듈을 로드할 수 있도록 이 행의 주석 처리가 해제되었는지 확인합니다.extension=/usr/lib64/php/modules/mysqli.so
-
다음 명령을 사용하여 NGINX 및 PHP 서비스를 다시 시작합니다.
[opc@ih-webserver-01 testocidb]$ sudo systemctl start php-fpm [opc@ih-webserver-01 testocidb]$ sudo systemctl restart nginx
-
이제 PHP 정보 페이지에서 PHP MySQL 모듈이 설치되었는지 확인합니다.
-
이 자습서에서는 Oracle Linux 8을 사용하고 있으며 SE Linux를 기반으로 합니다. 다음 명령을 실행하여 웹 서버(NGINX)가 MySQL Database에 접속하고 액세스할 수 있도록 해야 합니다.
[opc@ih-webserver-01 testocidb]$ sudo setsebool -P httpd_can_network_connect_db=1
참고: PHP 웹 사이트에서 위 명령을 실행하지 마십시오. 그러면 Could not connect: Can't connect to MySQL server 오류가 표시될 수 있습니다.
작업 7: 데이터베이스에 연결하고 웹 페이지에 레코드를 표시하는 웹 사이트 생성
-
웹 서버의 디렉토리를 웹 서버 파일의 기본 경로로 변경하려면 다음 명령을 사용합니다.
[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]$
-
새 테스트 웹 페이지에 대한 새 디렉토리를 생성하려면 다음 명령을 사용합니다.
[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]$
-
디렉토리를 새로 생성된 디렉토리로 변경하고 새
index.php
파일을 생성합니다.이 파일은 OCI 데이터베이스에 접속하여 데이터베이스에서 데이터를 풀링하고 웹 사이트에 표시하는 테스트 웹 사이트입니다.
[opc@ih-webserver-01 html]$ cd testocidb/ [opc@ih-webserver-01 testocidb]$ sudo nano index.php
-
테스트 웹 사이트의 HTML 및 PHP 코드는 아래에서 찾을 수 있습니다. 이 웹 페이지를 사용하는 경우 데이터베이스 IP, 이름, 사용자 이름 및 암호 세부 정보를 변경해야 합니다.
데이터베이스 테이블 및 데이터 구조에 따라 예제가 반영되도록 코드를 변경할 수 있습니다.
[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]$
웹 사이트 /testocidb/index.php
에 연결하면 웹 사이트에 성공적으로 액세스 할 수 있으며 가장 중요한 것은 데이터베이스에 저장된 데이터를 볼 수 있다는 것입니다.
확인
- 작성자 - Iwan Hoogendoorn(OCI Network Specialist)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Create an Oracle Cloud Infrastructure Compute Instance Webserver using an OCI Database as the main Backend
F94441-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.