Oracle HTTP Server 11gでのPHPの使用

Oracle HTTP ServerはOracle Fusion MiddlewareのWebサーバー・コンポーネントです。 Apacheインフラストラクチャに基づくOracle HTTP Serverを利用すると、開発者はさまざまな言語とテクノロジーを使用してサイトのプログラミングを実行できます。

PHP("PHP:Hypertext Preprocessor"の再帰的頭字語)はWebサイトの構築によく使用される汎用スクリプト言語です。 PHP 5のオブジェクト・モデルには標準のオブジェクト指向手法が使用されているため、プロジェクト開発が円滑化されます。

PHPの使用が急増する中で、mod_phpはApacheに対してもっともリクエストの多いモジュールになりました。 PHPのインタプリタ、言語、サーバー側モジュール(mod_php)はOracle HTTP Server 11gリリースには同梱されていませんが、オラクルではOracle HTTP Serverへのmod_phpの追加と構成を支援します。 オラクルはPHPのインタプリタおよび言語をサポートしていませんが、mod_phpを追加したOracle HTTP Server 11gは サポートしていることに注意してください。

このドキュメントでは、PHPをインストールし、Oracle HTTP Server 11gで使用できるように設定する方法 について説明します。 次の手順は、LinuxプラットフォームでOracle HTTP Server 11gとPHP v5.2.9およびv5.3を使用してテストされており、問題がないことが確認されています。

トピック

1. 前提条件
    1.1  システム要件
    1.2  ソフトウェア要件

2. Linuxでのmod_phpの構成 
    2.1  インストール前の手順 
    2.2  環境のセットアップ 
    2.3. 構成とインストール 
    2.4  インストール後の手順

3. 構成のテスト  


1. 前提条件

1.1  システム要件

インストールを開始する前にシステム要件と認定に関するドキュメントを読ん で、インストールする製品の最小インストール要件が満たされている環境を使用していることを確認してください。

1.2 ソフトウェア要件


2. Linuxでのmod_phpの構成

Oracle HTTP Serverのインストールと構成を行ったOSユーザーとしてログインし、次のタスクを実行します。 PHP 5.2を使用しており、Oracle Database(OCI8)サポートを構成する場合、OCI8の拡張機能(http://pecl.php.net/package/oci8か ら入手可能)を使用してOCI8 1.3にアップグレードすることを推奨します。 次の指示に従って、はじめにOCI8なしでPHPをインストールしてから、'pecl install oci8'コマンドを使用します。

2.1  インストール前の手順  

  1. Oracle HTTP Server 11gは、 PHPのインストールと構成を行うホストと同じマシンにインストールし、構成する必要があります。

    次にOracleホームのディレクトリ・リストを示します。 ここで、~/oraHome1はOracleホーム(Oracle HTTP Serverのバイナリが含まれる)がインストールされている場所であるとします。

    ~/oraHome1   
       |  
       +-- ohs  
       |   +-- bin  
       |   +-- lib
       | 
       +-- lib  
       +-- perl 
       |-- ...  


    次にOracleインスタンスのディレクトリ・リストを示します。 ここで、~/oraInstance1はOracleインスタンス("ohs1"と呼ばれるOracle HTTP Serverコンポーネントが含まれる)が作成された場所であるとします。

    ~/oraInstance1    
       |  
       +-- config   
       |   +-- OHS   
       |   |   +-- ohs1   
       |   |-- ...  
       |   +-- OPMN   
       |   |   +-- opmn   
       |  
       |-- ...  


    OracleホームとOracleインスタンスの概念について、詳しくは『
    Oracle Fusion Middleware Concepts Guide 11g Release 1』を参照してください。 Oracle HTTP Serverのディレクトリ構造について、詳しくは『Oracle Fusion Middleware Administrator's Guide for Oracle HTTP Server 11g Release 1』を参照してください。

    Oracle HTTP Serverのインストールと構成が正しく完了していることを確認するには、http://<ohs_host.domain>:<ohs_port>へ アクセスして、Oracle HTTP ServerのWelcomeページが問題なく起動されることを確認します。

  2. http://www.php.net/downloads.phpか らphp-5.x.x.tar.gzをダウンロードし、 任意の場所に保存します(このドキュメントの目的上、このロケーションを~/とします)。

  3. 次のコマンドを使用してファイルを解凍します。

    $ gunzip php-5.x.x.tar.gz


    php-5.x.x.tarファイルが生成されます。

  4. 次のコマンドを使用してtarファイルを展開します。

    $ tar -xvf php-5.x.x.tar


    php-5.x.xディレクトリが作成されます。このディレクトリの中身は次のようになります。
    ~/php-5.x.x  
       | 
       |-- build 
       |-- configure 
       |-- php.ini-dist 
       |-- libtool 
       | 
       | 
       +-- sapi 
       |-- ...  

    Oracle Database(OCI8)サポートを使用しない場合、ステップe)とステップf)をスキップして2.2 "環境のセットアップ"に進んでください。
     
  5. $ORACLE_HOME/rdbmsに、新規ディレクトリ"demo"を作成します。

  6. $ORACLE_HOME/rdbms/demoディレクトリにOCI headersのtarファイル をダウンロードし、次のコマンドを使用してtarファイルを展開します。

    $ tar -xvf ociheaders.tar


    ディレクトリの中身は次のようになります。

    ~/oraHome1    
       |  
       +-- ohs    
       |   
       +-- rdbms    
       |   |-- demo    
       |       |-- oci.h    
       |       |-- ociap.h    
       |       |-- oratypes.h    
       |       |-- ...    
       |       |-- ...    
       |  
       |-- ...  

2.2  環境のセットアップ

環境変数ORACLE_HOME、ORACLE_INSTANCE、 CONF_FILE_PATH、およびLD_LIBRARY_PATHを設定します。

Bashシェルを使用する場合:
   export ORACLE_HOME=~/oraHome1
   export ORACLE_INSTANCE=~/oraInstance1
   export CONFIG_FILE_PATH=$ORACLE_INSTANCE/config/OHS/ohs1
   export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ohs/lib:$LD_LIBRARY_PATH

Cシェルを使用する場合:
   setenv ORACLE_HOME ~/oraHome1   
   setenv ORACLE_INSTANCE ~/oraInstance1  
   setenv CONFIG_FILE_PATH $ORACLE_INSTANCE/config/OHS/ohs1
   setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:$ORACLE_HOME/ohs/lib:$LD_LIBRARY_PATH



2.3  構成とインストール

インストール前の手順が完了したら、次にPHPを構成します。

  1. $./configure --with-apxs2=$ORACLE_HOME/ohs/bin/apxs --prefix=$ORACLE_HOME --with-config-file-path=$CONFIG_FILE_PATH

    $./configure --with-apxs2=$ORACLE_HOME/ohs/bin/apxs --prefix=$ORACLE_HOME --with-config-file-path=$CONFIG_FILE_PATH --with-oci8=$ORACLE_HOME --disable-rpath

    注意:上記の構成コマンドは 複数行にわたって表示される場合がありますが、実際は1行です。

    PHPのXMLサポートを使用する場合:

    • http://www.xmlsoft.orgからlibxml2をダウンロードし、$ORACLE_HOME/libxml2 ディレクトリにインストールします。
    • ダウンロードしたlibxml2のバージョンが使用するPHPのバージョンと一致することを確認します。
    • 'configure'コマンドのオプションとして"--with-libxml-dir= $ORACLE_HOME/libxml2"を追加します。

    必要に応じて、その他の構成オプションを追加します。

  2. 'configure'コマンドがエラーなしで正常終了したら、コマンド・プロンプトで'make'コマンドを実行します。

    $ make

    $ make install

makeコマンドの実行が問題なく終了したら、次のことを確認します。

  • ~/php-5.x.x/libs/ディレクトリにlibphp5.soが生成されており、$ ORACLE_HOME/ohs/modulesディレクトリにコピーされていること。
  • php5_moduleモジュールをロードするために、$CONFIG_FILE_PATH/httpd.confファイルが更新されて いること。

2.4  インストール後の手順

ここまでで必要なファイルが生成され、適切な場所にコピーされたため、. php/.phtml/.phpsタイプの拡張子を持つリクエストを処理するようOracle HTTP Serverに指定し、Oracle HTTP Serverを再起動する必要があります。

  1. デフォルトのPHP設定ファイルを$ CONFIG_FILE_PATHディレクトリにコピーします。

    PHP 5.2:

    $ cp ~/php-5.x.x/php.ini-dist $CONFIG_FILE_PATH/php.ini

    PHP 5.3:

    $ cp ~/php-5.x.x/php.ini-production $CONFIG_FILE_PATH/php.ini

     
  2. $CONFIG_FILE_PATHディレクトリへ移動し、 httpd.confファイルを開いて次の内容を追加します。

    # And for PHP 5.x use:
    AddType application/x-httpd-php .php .phtml


    PHPのソース・コードを表示したい場合、次の内容を追加して、.phpsで終わるファイルが実行されずに表示されるようにします。

    AddType application/x-httpd-php-source .phps



  3. 最後に、Oracle HTTP Serverを再起動して変更を反映します。

    $ cd $ORACLE_INSTANCE/bin

    $ ./opmnctl stopproc ias-component=ohs1

    $ ./opmnctl startproc ias-component=ohs1



  4. 3. "構成のテスト"進んで構成をテストします。


3.  構成のテスト  

  1. $CONFIG_FILE_PATH/htdocsディレクトリにファイルを解凍します。 ディレクトリの中身は次のようになります。

    ~/oraInstance1    
       |  
       +-- config   
       |   +-- OHS   
       |   |   +-- ohs1
       |   |   |   +-- htdocs
       |   |   |   |   |-- demo
       |   |   |   |       |-- phpinfo.php  
       |   |   |   |       |-- dbtest01.php 
       |   |   |   |       |-- dbtest02.php 
       |   |   |   |       |-- dbtest03.php  
       |-- ...  

     
  2. データベースのテスト用スクリプト・ファイル(dbtest*.php)にアクセスする前にこれを開き、データベースの資格証明に合わせて$ username、$password、$dbnameの変数値を設定します。

  3. 次のURLへアクセスして、テスト用のPHPページを実行します。

    Oracle Databaseサポートを使用しない場合:
    http://<ohs_host.domain>:<ohs_port>/demo/phpinfo.php

    Oracle Databaseサポートを使用する場合:
    http://<ohs_host.domain>:<ohs_port>/demo/dbtest01.php
    http://<ohs_host.domain>:<ohs_port>/demo/dbtest02.php
    http://<ohs_host.domain>:<ohs_port>/demo/dbtest03.php