[PHP] XAMPP の PHP と Oracle の接続設定メモ | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

ローカル PC に PHP の開発環境を構築するため、XAMMP をインストールしました。

データベースには MySQL ではなく、Oracle を使用します。

XAMPP と Oracle のバージョンはそれぞれ以下のとおりです。

  • XAMPP for Windows 1.7.3
  • Oracle Database 11g Release 11.1.0.7.0
この環境における PHP と Oracle の接続設定手順は以下のとおりです。

1.Oracle Instant Client インストール

PHP から Oracle への接続には OCI(Oracle Call Interface)を利用しますが、そのためには Oracle Instant Client をインストールする必要があります。
(Oracle Database がインストールされているだけではだめなようです。)

ということで、OTN から Instant Client Package - Basic ( instantclient-basic-win32-11.1.0.7.0.zip )をダウンロードし、ORACLE_HOME 直下(ここでは、C:\app\oracle\product\11.1.0\db_1\instantclient_11_1)に展開します。



2.システム環境変数の設定

Oracle Instant Client へのパスを通すために、システム環境変数 PATH に Oracle Instant Client をインストールしたパスを追加します。

PATH=C:\app\oracle\product\11.1.0\db_1\instantclient_11_1;~
さらに、

NLS_LANG=Japanese_Japan.AL32UTF8
も設定します。


3.php.ini の設定

PHP のインストールディレクトリ(ここでは、C:\xampp\php)にある php.ini に以下の設定を追加します。

[PHP]
default_charset = "UTF-8"
extension=php_oci8.dll

[mbstring]
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8


4.設定確認

1) XAMPP Control Panel から Apache を起動(Start)します。

2) XAMPP の管理画面(http://localhost/xampp/)にアクセスして、サイドバーから"php_info()"を選択します。

3) PHP の設定情報が表示されるので、以下の事項を確認します。

  • 環境変数 NLS_LANG が正しくセットされている。
  • 環境変数 PATH が正しくセットされている。
  • oci8 の設定情報が正しく表示されている。


5.動作確認

1) Oracle に接続する簡単なスクリプトを作成します。

check_oracle.php
<?php
    $con = oci_connect( 'scott', 'tiger', '//' . 'localhost' . ':' . '1521' . '/' . 'orcl' );
    $stmt = oci_parse( $con, "SELECT SYSDATE FROM DUAL" );
    oci_execute( $stmt );
    $row = oci_fetch_array( $stmt );
    print $row['SYSDATE'];
    oci_close( $con );

2) XAMPP の Apache の DocumentRoot(ここでは、C:\xampp\htdocs)上に作成したスクリプトファイルを置きます。

3) Web ブラウザから上記のスクリプトファイル(http://localhost/check_oracle.php)にアクセスし、画面に結果が表示されれば OK です。