PHPアプリケーションの構築
Autonomous AI DatabaseにアクセスするPHPアプリケーションを構築するには、まず開発システムを構成して、Autonomous AI Databaseの継続的な可用性および高パフォーマンスの機能を利用できるデータベース・アクセスをサポートするように構成します。
開発システムを構成した後、継続的な可用性および高パフォーマンスの機能を利用するように、アプリケーション内のデータベース接続およびSQL文をコーディングします。
PHP開発システムの構成
PHPアプリケーションがAutonomous AI Databaseの継続的な可用性および高パフォーマンスの機能を利用できるように開発システムを構成するには、これらのステップを実行します。
-
PHPをダウンロードしてインストールします。
-
Oracle Instant Clientをダウンロードしてインストールします。
-
PHP OCI8をダウンロードしてインストールします。
-
データベースのクライアント資格証明をダウンロードして、Oracle Instant Clientで使用できるようにします。
開始する前に
開発システムを正常に構成するためには、それが特定の基準を満たしている必要があります。
-
インターネット・アクセスが必要です。
-
自律型AIデータベースへのネットワーク・アクセスが必要です。
開発システムがこの要件を満たしていることを確認する方法については、データベースにアクセスするための開発システムの構成を参照してください。
PHPのダウンロードとインストール
使用しているシステムのOSおよびアーキテクチャ用のPHPをダウンロードしてインストールします:
-
Oracle Linux:
次のコマンドを実行して、PHPのダウンロードとインストール、およびPEARのダウンロードとインストールを行い、PHPのpeclパッケージ管理コマンドを取得します:
sudo dnf install -y oracle-release-el8 oracle-php-release-el8
sudo dnf install -y php php-devel php-xml dtrace-utils
wget http://pear.php.net/go-pear.phar
sudo php go-pear.phar
-
その他のOSおよびアーキテクチャ:
PHPの「Installation and Configuration」ページに移動し、システムのOSおよびアーキテクチャの手順に従います。
Oracle Instant Clientのダウンロードとインストール
使用しているシステムのOSおよびアーキテクチャ用のOracle Instant Client Basicパッケージをダウンロードしてインストールします:
-
Oracle Linux:
次のコマンドを実行して、Oracle Instant Client Basicパッケージをダウンロードしてインストールします:
sudo dnf -y install oracle-release-el8
sudo dnf -y install oracle-instantclient21.13-basic oracle-instantclient21.13-devel
(すべてのインスタント・クライアント・パッケージのリストを確認するには、http://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/index.htmlに移動します。)
-
その他のOSおよびアーキテクチャ:
-
「Oracle Instant Clientのダウンロード」ページに移動し、使用しているシステムのOSおよびアーキテクチャ用のダウンロードを選択します。
-
ダウンロード・ページでOracle Technology Networkライセンス契約に同意し、最新バージョンのBasicパッケージとSDKパッケージをダウンロードしてから、ダウンロード・ページの下部にある指示に従ってインストールします。
-
PHP OCI8のダウンロードとインストール
使用しているシステムのOSおよびアーキテクチャ用のPHPのOCI8拡張機能をダウンロードしてインストールします:
-
Oracle Linux:
次のコマンドを実行して、OCI8拡張機能の最新バージョンをダウンロードしてインストールします:
sudo PHP_DTRACE=yes pecl install oci8
sudo sh -c "echo extension=oci8.so > /etc/php.d/20-oci8.ini"
sudo sh -c "echo oci8.events = On > /etc/php.d/20-oci8.ini"
アプリケーションでOracle環境変数が必要な場合は、/etc/sysconfig/httpd構成ファイルにそれを追加します。例:
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
ORA_SDTZ=UTC
このような変数を追加した場合は、新しい変数を読み取るためにApache HTTPサーバーを再起動します:
sudo systemctl restart httpd
-
その他のOSおよびアーキテクチャ:
-
次のコマンドを実行します:
pecl install oci8 -
次の行をPHPインストールの
php.iniファイルに追加します:extension=oci8.so oci8.events = On
-
データベースのクライアント資格証明のダウンロードとインストール
-
データベースのクライアント資格証明を含むzipファイルをコンピュータ上の安全なディレクトリにダウンロードします。
このzipファイルは、Oracle Cloudコンソールのデータベースの「詳細」ページからダウンロードできます。このページへのアクセスを許可するOracle Cloudユーザー・アカウントを持っている場合は、次のように資格証明をダウンロードします。そのようなアカウントを持っていない場合は、データベースの管理者から、zipファイルとパスワード(zipファイルの保護に使用された)を一緒に取得する必要があります。
-
WebブラウザでOracle Cloudにサインインし、Autonomous AI Databaseの「詳細」ページに移動します。
-
「DB Connection」をクリックします。
-
「データベース接続」ページで「ダウンロード」をクリックします。
-
「Download Wallet」ダイアログで、「Password」フィールドにウォレット・パスワードを入力し、「Confirm Password」フィールドにパスワードを確認します。
パスワードは8文字以上の長さで、少なくとも1つの文字と、1つの数字または1つの特殊文字を含める必要があります。
-
「ダウンロード」をクリックして、クライアント資格証明zipファイルを安全なディレクトリに保存します。
-
-
zipファイルをダウンロードした後は、次のステップに従います:
-
クライアント資格証明zipファイルを解凍します。
-
クライアント資格証明内に提供されている
sqlnet.oraファイルを編集し、"?/network/admin"を、クライアント資格証明の解凍先ディレクトリのフルパスに置き換えます。例: 変更前:(DIRECTORY="?/network/admin")変更後:
(DIRECTORY="/users/jdoe/adbcredentials") -
TNS_ADMIN環境変数を作成し、その値をクライアント資格証明の解凍先ディレクトリのフルパスに設定します。
-
データベース接続およびSQL文のコーディング
Autonomous AI DatabaseへのPHPアプリケーションの接続をサポートするよう開発システムを構成したら、次のガイドラインに従って、アプリケーションのデータベース接続の高パフォーマンスおよび継続的な可用性を実現します:
-
接続プールを使用します。
-
FAN (高速アプリケーション通知)を有効にします。
-
実行する操作に最も適した事前定義済データベース・サービスを使用します。事前定義済データベース・サービスの詳細は、Autonomous AI Databaseの事前定義済データベース・サービス名を参照してください。
PHPの場合、PHPのOracle OCI8拡張機能のダウンロードおよびインストールの一部としてoci8.events = On行をphp.iniファイルに追加するときに、FANを有効にします。
OCI8インタフェースは、特定の接続プーリング・コールを公開しません。かわりに、内部で接続プールを使用します。接続プーリングのメリットを得るには、oci_pconnect()ファンクションを使用して、複数のHTTPリクエストにわたって使用できる永続的な接続を作成または再利用します。
たとえば:
$connection = oci_pconnect("appuser", getenv("MY_PASSWORD_ENV_VAR"), "tp_tls");
この例では、tp_tlsデータベース・サービスへの永続的な接続を作成します。
関連コンテンツ
-
PHPのOracle OCI8拡張機能の詳細は、Oracle OCI8ページを参照してください。
-
Oracle DatabaseでのPHPの使用の詳細は、『アンダーグラウンドPHPおよびOracleマニュアル』に関する項を参照してください。