たいちょの部屋 Apache + PHP + Oracle9i Client インストール手順

インストール環境
Apache 1.3.26
PHP 4.2.3
Oracle 9i Client

・Apacheの展開 まず、ソースを展開し、展開したディレクトリに移動します。

Apacheをインストール

> ./configure --enable-module=so
> make
# make install

次に、PHP の configure を実行します。ただし、結構オプションを付けなければなりません。configure を --helpオプション付で実行すると、ヘルプが表示されるので見てみましょう。

> ./configure --help
必要なオプションを選択して、configure を実行します。今回必要なオプションは、PostgreSQL 関係と、Apache 関係、それと日本語をサポートするためのオプションです。他のデータベースをサポートしたい場合などは、そのオプションも指定します。また、gd ライブラリをインストールしていない場合は、--without-gd オプションを付けます。ここでは、gd ライブラリをインストールしているものとします。

PHPで「--with-oracle」オプションを付ける場合は、$ORACLE_HOME/libにあるlibclntsh.so.9.0からlibclntsh.so.8.0へのシンボリックリンクを張っておきます。

$ cd $ORACLE_HOME/lib
$ ln -s libclntsh.so.9.0 libclntsh.so.8.0

Configureします。

> ./configure --with-apxs=/usr/local/apache/bin/apxs --with-oci8=$ORACLE_HOME \
--with-oracle=$ORACLE_HOME --enable-i18n --without-mysql --without-pgsql \
--enable-sigchild --enable-ftp \
--enable-mbstring --enable-mbstr-enc-trans \
--enable-mbregex

これで make をする用意ができました。make を実行し、インストールしましょう。インストールは、apahce のディレクトリにインストールされるので、root になる必要があります。

> make
# make install
インストールが終わったら、PHP が使用する設定ファイルを用意します。php.ini-dist というファイルが用意されているので、それを configure を実行するときに指定したパスへ、php.ini という名でコピーします。

# cd mkdir /usr/local/apache/conf/php
# cp php.ini-dist /usr/local/apache/conf/php/php.ini
Apache から php モジュールが有効になるように、httpd.conf ファイルを編集します。

# cd /usr/local/apache/conf
PHP で書かれたファイルを、PHP のモジュールに処理させるように、httpd.conf ファイルのなかの php と書かれた行を探します。(以前は srm.conf で設定していたものですが、1.3.4 から、すべて httpd.conf に統一されたようです)最近の Apache には、最初から PHP 3.x と、PHP 4.x に関する設定が、コメントつきで書かれています。インストールしたのは、PHP 4.x ですので、PHP 4.x の設定部分を有効にします。

# モジュールをロード(LoadModule と書いてある一群の一番最後に加える)
LoadModule php4_module lib/apache/libphp4.so
# モジュールリストに追加(AddModule と書いてある一群の一番最後に加える)
AddModule mod_php4.c
# PHP ハンドラを追加(AddType と書いてある一群の一番最後に加える)
AddType application/x-httpd-php .php .php4
AddType application/x-httpd-php-source .phps .php4s

# ApachectlにOracleの環境変数を設定する。
OracleをPHPからアクセスしています。この為にはApacheのhttpd起動時にRDBMS関連のパス情報を環境変数として設定する必要があります。

この為に、 /usr/local/apache/bin/apachectl に以下の行を追加しました。

#!/usr/bin/bash
export ORACLE_BASE=/export/home/oracle
export ORACLE_HOME=/export/home/oracle/OraHome1
export ORACLE_SID=orcl
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$ORACLE_HOME/bin:$PATH:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=Japanese_Japan.JA16EUC

#
# Apache control script designed to allow an easy command line interface
# to controlling Apache. Written by Marc Slemko, 1997/08/23

ここまで終わったら、設定ファイルの設定が正しいかをチェックします。

# cd ../bin
# cd ./apachectl configtest
「Syntax OK」と出たら成功ですので、変更を有効にするために、Apache を再起動します。

# cd ./apachectl restart
これで終りです。

■php.iniの設定
http://jp.php.net/manual/ja/html/ref.mbstring.html
http://ns1.php.gr.jp/pipermail/php-users/2001-June/000305.html などを参照。

例 6 SJISユーザ用のphp.iniの 設定
php.iniファイルに下記記述を書き加える。

(Shift-JISを使う理由としては、主にimodeによる閲覧者に対応するため。)
(なお、下記設定はhttp://jp.php.net/manual/ja/html/ref.mbstring.htmlによる)

;; 文字の中に不要な文字(\ 等)が出るのを防ぐ
magic_quotes_gpc = Off

;; 出力のバッファリングを有効に
output_buffering = On

;; 出力の変換を有効にするために mb_output_handler を設定
output_handler = mb_output_handler

;; HTTPヘッダ charset を設定
default_charset = Shift_JIS

;; HTTP入力エンコーディング変換をautoに設定
mbstring.http_input = auto

;; SJISに変換
mbstring.http_output = SJIS

;; 内部エンコーディングをEUC-JPに設定
mbstring.internal_encoding = EUC-JP

;; 無効な文字を出力しない
mbstring.substitute_character = none



Back