PHPアプリケーションの構築
Autonomous DatabaseにアクセスするPHPアプリケーションを構築するには、まず開発システムを構成して、Autonomous Databaseの継続的可用性および高パフォーマンス機能を利用できるデータベース・アクセスをサポートするようにします。
開発システムを構成した後、継続的な可用性および高パフォーマンスの機能を利用するように、アプリケーション内のデータベース接続およびSQL文をコーディングします。
関連項目
PHP開発システムの構成
PHPアプリケーションがAutonomous Databaseの継続的可用性および高パフォーマンスの機能を利用できるように開発システムを構成するには、次のステップを実行します。
- PHPをダウンロードしてインストールします。
- Oracle Instant Clientをダウンロードしてインストールします。
- PHP OCI8をダウンロードしてインストールします。
- データベースのクライアント資格証明をダウンロードして、Oracle Instant Clientで使用できるようにします。
開始する前に
開発システムを正常に構成するためには、それが特定の基準を満たしている必要があります。
-
インターネット・アクセスが必要です。
-
Autonomous Databaseへのネットワーク・アクセスが必要です。
開発システムがこの要件を満たしていることを確認する方法については、データベースにアクセスするための開発システムの構成を参照してください。
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
-
その他のOSesおよびアーキテクチャ:
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
に移動します。) -
その他のOSesおよびアーキテクチャ:
-
「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
-
その他のOSesおよびアーキテクチャ:
-
次のコマンドを実行します
pecl install oci8
-
次の行をPHPインストールの
php.ini
ファイルに追加します:extension=oci8.so oci8.events = On
-
データベースのクライアント資格証明のダウンロードとインストール
-
データベースのクライアント資格証明を含むzipファイルをコンピュータ上の安全なディレクトリにダウンロードします。
このzipファイルは、Oracle Cloudコンソールのデータベースの「詳細」ページからダウンロードできます。このページへのアクセスを許可するOracle Cloudユーザー・アカウントを持っている場合は、次のように資格証明をダウンロードします。そのようなアカウントがない場合は、データベースの管理者からzipファイル、およびzipファイルの保護に使用されたパスワードを取得する必要があります。
-
WebブラウザでOracle Cloudにログインし、Autonomous Databaseの詳細ページに移動します。
-
「DB接続」をクリックします。
-
「Database Connection」ページで、「Download」をクリックします。
-
「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 DatabaseへのPHPアプリケーション接続をサポートするように開発システムを構成したら、次のガイドラインに従って、データベースへのアプリケーション接続の高パフォーマンスおよび継続的可用性を実現します:
- 接続プールを使用します。
- FAN (高速アプリケーション通知)を有効にします。
- 実行する操作に最も適した事前定義済データベース・サービスを使用します。事前定義済データベース・サービスの詳細は、Autonomous 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マニュアルを参照してください。