ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を終える際は、これらの値をクラウド環境に固有の値に置き換えてください。
OCIデータベースをメイン・バックエンドとして使用したOracle Cloud Infrastructure ComputeインスタンスWebサーバーの作成
イントロダクション
このチュートリアルでは、WebサーバーおよびOCIデータベース・サービス(MySQL)として機能するOracle Cloud Infrastructure (OCI)コンピュート・インスタンスで構成される2層アプリケーションを作成します。サンプルWebサイトおよびデータベースが作成され、このWebサイトはOCIデータベース表からデータを取得します。
目的
-
2層Webアプリケーションを作成し、PHPおよびNGINX Webサーバーのフロントエンドとしてパブリック・インターネットに接続されたOCIコンピュート・インスタンスと、サンプル・データを含むプライベートなMySQL Databaseを使用します。PHP MySQLモジュールをインストールし、サンプル・データを含むデータベースを作成して、Webサイトおよびサンプル・データに正常にアクセスします。
-
タスク1: 新しい仮想クラウド・ネットワーク(VCN)の作成
-
タスク2: 新しいパブリック・サブネットとプライベート・サブネットの作成
-
タスク3: 新しいOCIコンピュート・インスタンスの作成
-
タスク4: 新しいMySQL Databaseエンジンの作成
-
タスク5: サンプル・データを含む新しいデータベースの作成
-
タスク6: PHPを使用したNGINX Webサーバーのインストールおよび構成
-
タスク7: データベースに接続し、Webページにレコードを表示するWebサイトを作成します。
-
タスク1: 新しいVirtual Cloudネットワーク(VCN)の作成
VCNはすでに作成されていますが、それでも新しいVCNを作成する必要がある場合は、チュートリアル「IPv6が有効な新規VCNの作成」に従ってください。
左上隅のハンバーガー・メニューをクリックします。「Virtual Cloud Networking」をクリックして、仮想クラウド・ネットワークが存在するかどうかを確認します。
このチュートリアルでは、すでにVCNが存在します。
タスク2: 新しいパブリック・サブネットとプライベート・サブネットの作成
すでにパブリック・サブネットとプライベート・サブネットが作成されていますが、それでも新しいサブネットを作成する必要がある場合は、「IPv6有効で新しいパブリック・サブネットを作成」および「VCN内にプライベート・サブネットを作成」というチュートリアルに従います。
このVCN内には、使用可能なパブリック・サブネットとプライベート・サブネットがあります。OCI Computeインスタンスをパブリック・サブネットに接続し、OCIデータベースをプライベート・サブネットに接続します。
使用可能なOCIコンピュート・インスタンスを確認するには、左上隅にあるハンバーガー・メニューをクリックします。
タスク3: 新しいOCIコンピュート・インスタンスの作成
OCIコンピュート・インスタンスはすでに作成されていますが、新しいOCIコンピュート・インスタンスを作成する必要がある場合は、チュートリアルタスク3: IPv6を有効にした新規インスタンスの作成に従ってください。
「インスタンス」をクリックして、OCIコンピュート・インスタンスを確認します。
パブリック対応のコンピュート・インスタンスは稼働中です。
タスク4: 新しいMySQL Databaseエンジンの作成
-
左上隅のハンバーガー・メニューをクリックします。
- 「データベース」をクリックします。
- 「MySQL HeatWave」をクリックします。
-
「DBシステムの作成」をクリックします。
-
「DBシステムの作成」に、次の情報を入力します。
- 「Development or Testing」を選択します。
- 「名前」に入力します。
- 下へスクロール
-
「管理者資格証明の作成」セクションで、次の情報を入力します。
- ユーザー名を入力します
- パスワードを入力します。
- 「パスワードの確認」を入力します。
- 「スタンドアロン」を選択します。
- 下へスクロール
- データベースのVCNを選択します。
- データベースに接続するプライベート・サブネットを選択します。
- 下へスクロール
-
下へスクロール
-
「作成」をクリックしてデータベースを作成します。
-
データベースのステータスが「作成中」であることを確認します。
データベース・ステータスがUPDATINGであることを確認します。
- データベースのステータスが ACTIVEであることを確認します。
- 「接続」タブをクリックします。
後でMySQL Databaseの構成およびアクセスに使用するプライベートIPアドレス10.0.2.247
を確認します。
タスク5: サンプル・データを使用した新規データベースの作成(2つのレコードを含む1つの表)
-
MySQL Databaseにアクセスして構成するには、MySQLシェルをインストールする必要があります。次のコマンドを実行してインストールします。
[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 Databaseに正常にアクセスできるようになりました。
-
MySQLシェルを使用して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 >
-
テーブル内に2つの新しいレコードを作成するには、次のコマンドを使用します。
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 >
-
2つの新しいレコードが表内に作成されていることを確認するには、次のコマンドを使用します。
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 Webサイトを使用してこのデータを取得することです。
タスク6: PHPを使用したNGINX Webサーバーのインストールおよび構成
NGNIXおよびPHPが作成されたコンピュート・インスタンスがすでにありますが、NGNIXおよびPHPを使用して新しいインスタンスを作成する必要がある場合は、チュートリアルタスク6: インスタンスへのWebサーバーのインストールに従ってください。
以前のNGINXとPHPの設定では、PHP MySQLモジュールはインストールされませんでした。PHP Infoページのクイックチェックはこれを確認します。
-
次のコマンドを使用して、NGINXおよびPHPがMySQLと連携できるように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に基づいています。Webサーバー(NGINX)がMySQL Databaseに接続してアクセスできるようにするには、次のコマンドを実行する必要があります。
[opc@ih-webserver-01 testocidb]$ sudo setsebool -P httpd_can_network_connect_db=1
ノート: PHP Webサイトで前述のコマンドを実行しないでください。これにより、「接続できませんでした: MySQLサーバーに接続できません」というエラーが発生する可能性があります。
タスク7: データベースに接続し、Webページにレコードを表示するWebサイトの作成
-
Webサーバー上のディレクトリをWebサーバー・ファイルのデフォルト・パスに変更するには、次のコマンドを使用します。
[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]$
-
新しいテストWebページの新しいディレクトリを作成するには、次のコマンドを使用します。
[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データベースに接続し、データベースからデータをプルしてWebサイトに表示するためのテストWebサイトになります。
[opc@ih-webserver-01 html]$ cd testocidb/ [opc@ih-webserver-01 testocidb]$ sudo nano index.php
-
テストWebサイトのHTMLおよびPHPコードは、次のとおりです。このWebページを使用している場合は、データベースの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]$
Webサイト/testocidb/index.php
に接続すると、Webサイトに正常にアクセスでき、最も重要なことに、データベースに格納されているデータが表示されます。
確認
- 著者 - Iwan Hoogendoorn (OCIネットワーク・スペシャリスト)
その他の学習リソース
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
F94440-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.