SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Oracle Tips

PHPでOracle Databaseを使う(導入編)

Oracle Instant ClientによるOracleとPHP接続の基本


必要なソフトウェアの入手と導入

 本作業は、すべてrootユーザーで行うことを前提としています。実運用時には、各ファイルパーミッション、設定などセキュリティを再考することをお勧めします。

1. Apache HTTP Server

 ディストリビューション付属のもの、もしくはDSOを有効にしコンパイルしたApacheを別途導入する必要があります。

  1. Apache Downloadサイトで、[httpd-2.2.4.tar.bz2]をクリックしダウンロードします。
  1. 展開しコンパイルを行います。
    tar xvfj httpd-2.2.4.tar.bz2
    cd httpd-2.2.4
    ./configure --enable-so
    make; make install
    

2. Oracle Instant Client v10.2.0.3

  1. Oracle Techology Networkからダウンロード
    ダウンロードにはOTNへの会員登録が必要です。Oracle Instant Clientは下記のコンポーネントをダウンロードすることが可能です。
    表1
    基本 OCI、OCCIおよびJDBC OCIアプリケーションの実行に必要なすべてのファイル。
    JDBC Supplement JDBCでのXA、国際化、および行セットに対する追加サポート。
    SQL*Plus Instant ClientでSQL*Plusを実行するための追加ライブラリおよび実行可能ファイル。
    ODBC Supplement Instant ClientでODBCアプリケーションを有効にするための追加ライブラリ。
    SDK OCIおよびOCCIアプリケーションを開発するためのヘッダー・ファイルとMakefile。開発されたアプリケーションは、任意のクライアント環境に配置できます。
    このうち、PHPでコンパイルするにあたり必要なものは、「基本」「SDK」の2つのみです。今回は動作確認・メンテナンス性が必要であるため、併せて「SQL*Plus」を導入します。
    図3
    図3
    Linux x86をクリックし、ダウンロードページへ移動します。
    図4
    図4
    本ページより、下記パッケージをダウンロードします。
    図5
    図5
    • Oracle Instant Clientパッケージ - 基本
      instantclient-basic-linux32-10.2.0.3-20061115.zip
    • Oracle Instant Clientパッケージ - SDK
      instantclient-sdk-linux32-10.2.0.3-20061115.zip
    • Oracle Instant Clientパッケージ - SQL*Plus
      instantclient-sqlplus-linux32-10.2.0.3-20061115.zip
  1. ダウンロードファイルの展開
    ダウンロードを行ったファイルを任意の場所に展開します。本記事では/usr/local/lib/へ展開しています。
    unzip instantclient-basic-linux32-10.2.0.3-20061115.zip /usr/local/lib/
    unzip instantclient-sdk-linux32-10.2.0.3-20061115.zip /usr/local/lib/
    unzip instantclient-sqlplus-linux32-10.2.0.3-20061115.zip /usr/local/lib
    
  1. リンク
    展開したライブラリへ、参照用にリンクを作成します。
    ln -s /usr/local/lib/instantclient_10_2/libclntsh.so.10.1/usr/local/lib/instantclient_10_2/libclntsh.so
    
  1. SQL*PLUSの有効化
    vi ~/.bashrc
    
    下記行を追加します。
    export LANG=ja_JP.utf8
    export NLS_LANG=Japanese_Japan.AL32UTF8
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/instantclient_10_2
    export PATH=$PATH:/usr/local/lib/instantclient_10_2
    

3. PHP 5.2.2

  1. www.php.orgより、ソースコードをダウンロードします。
    この例では、[PHP 5.2.2 (tar.bz2) [7,140Kb] - 03 May 2007]をダウンロードします。
    図6
    図6
  1. ソースコードを展開します。
    tar xvfj php-5.2.2.tar.bz2 /usr/local/src/
    
  1. コンパイルを実施します。
    cd /usr/local/src/php-5.2.2
     ./configure --with-oci8=instantclient,/usr/local/lib/instantclient_10_2 --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte
         make; make install
    

Apacheの起動とPHPの動作確認

  1. httpd.confの変更
    Apacheの設定ファイルを変更し、PHPを有効にします。
    vi /usr/local/apache2/conf/httpd.conf
    
    下記行が記載されているか確認
    LoadModule php5_module        modules/libphp5.so
    
    下記行を追加します(AddType application/x-gzip .gz .tgzの下あたり)
    AddType application/php x-httpd-php .php
    
  1. envvarsの変更
    Apacheのbinファイル配下にある環境設定ファイルを編集し、設定します。
    vi /usr/local/apache2/bin/envvars
    
    下記行を追加(既存のLD_LIBRARY_PATHにInstant Clientの展開ディレクトリを追加)
    export LD_LIBRARY_PATH=/usr/local/lib/instantclient_10_2:$LD_LIBRARY_PATH
    
    下記行を追加(文字コードをUTF8にする)
    NLS_LANG=Japanese_Japan.AL32UTF8
    export NLS_LANG
    
  1. php.iniの配置および変更
    cp /usr/local/src/php-5.2.2/php.ini-dist /usr/local/lib/php.ini
    vi /usr/local/lib/php.ini
    
    下記行を変更し、UTF-8で文字コードを統一する
    default_charset = "UTF-8"
    mbstring.internal_encoding = UTF-8
    mbstring.http_output = UTF-8
    
  1. Apacheの起動および確認
    /usr/local/apache2/bin/apachectl start
    
    ブラウザでアクセスし確認
    http://<hostname>/
    
    It's Work!(ソースからコンパイルした場合のデフォルト)が表示されていれば完了です。
  1. PHPの確認
    テスト用スクリプトを配置して、確認します。
    vi /usr/local/apache2/htdocs/php.php
    
    下記内容で編集を行う
    <?php
      phpinfo();
    ?>
    
    ブラウザでアクセスし確認
    http://<hostname>/php.php
    
    図7
    図7
    OCIの項目があることを確認します。
    図8
    図8

次のページ
PHPからOracleへの動作確認

この記事は参考になりましたか?

Oracle Tips連載記事一覧

もっと読む

この記事の著者

日本オラクル 松沢(マツザワ マサオミ)

日本オラクル Oracle Direct エンジニア。Oracle Databaseとオープンソースのよりよい関係をテーマに活動を行っています。ご相談は是非Oracle Directへ。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1335 2008/08/22 19:32

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー