|
ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。
OracleをサポートしたPHPをApache DSO(Dynamic Shared Object)としてのインストール手順を示します。
基本的なインストール手順は、PHP4.3.xでもPHP5.0.xでも同じです。また、ダウンロードしたアーカイブを展開したときに作成されるinstall.txtを一読しましょう。
1.今回の環境
以下の環境で確認しています。
- ショップブランドマシン(Athlon 1.4GHz/1300MB Mem/30GB HDD)
- Windows2000 Professional + SP2
- Apache1.3.20 for Win32
- PHP4.0.6 for Win32
- Oracle8.1.7i
2.Apacheのインストール
Apacheのインストールのページを参照して、DSOをサポートするようインストールしてください。
3.Oracleのインストール
実際の手順は、Oracleのインストールガイドにお任せします(^^;
4.Apache・PHPのWin32バイナリを入手
Apache本家(http://httpd.apache.org/)とPHP本家のサイト(http://www.php.net/)からWindows用バイナリを取得します。最新版は(2001/10/02現在)は、Apache1.3.20、PHP4.0.6です。
5.Apacheのインストール
ダウンロードしたexeファイルを実行し、ダイアログに従ってインストールします。
6.PHPのインストール
PHPはZip形式で圧縮されているので、任意のディレクトリに解凍します。今回は「e:\usr\local\php」としましたので、以下の説明はあなたの環境に合わせて読み替えてください。解凍後、e:\usr\local\php\php4ts.dllを%windir%、あるいは%windir%\system32に移動します。また、e:\usr\local\php\dllsディレクトリにあるDLLファイルも%windir%、あるいは%windir%\system32にコピーしておきます。
7.Apacheのインストール
Apacheをインストールしたディレクトリ直下のconfディレクトリにhttpd.confがあるので、環境に合わせて編集します。
# host 名
ServerName [host名]
# URLでファイルが指定されなかった場合に表示するファイル名
DirectoryIndex index.html index.php
# コメントをはずす
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# なければ追加する
LoadModule php4_module e:/usr/local/php/sapi/php4apache.dll
8.php.iniの設定
PHP4の設定ファイルであるphp.iniのコピー&設定を行います。PHP を解凍したディレクトリにphp.ini-distファイルがありますので、%windir%/php.iniとしてコピーします。コピーしたら、以下の内容を追記します。詳細はPHPマニュアルなどを参照して下さい。
; 拡張モジュールへのパスを修正
extension_dir = e:/usr/local/php/extensions/
; Oracle を使う場合は、いずれかのコメントをはずす
; 特に理由がなければ、OCI8の方をアンコメントする
extension=php_oci8.dll
;extension=php_oracle.dll
両方をコメントアウトするとApache自体起動しませんでした(コマンドライン、サービスとも)。が、どちらか片方だけであればApacheが起動し、Oracleへの接続もできました。
extension_dirには、ディレクトリextensionsの絶対パスの他、apache.exeからディレクトリextensionsへの相対パスを指定してもOKです。
9.Apacheの起動と動作確認
DOSプロンプト からApacheを起動します。
> cd [Apacheをインストールしたディレクトリ]
> apache
以下のようなPHPスクリプトを用意し、Oracleとの接続テストを行います。
<?php
<b>●Oracleとの接続テスト</b>
<hr>
<?php
$conn = OCILogon("scott", "tiger", "orcl");
$stmt = OCIParse($conn,"select * from emp ");
OCIExecute($stmt);
$ncols = OCINumCols($stmt);
echo "<TABLE BORDER='1'>";
echo "<TR>";
for ( $i = 1; $i <= $ncols; $i++ ) {
$column_name = OCIColumnName($stmt,$i);
echo "<TH>" . $column_name . "</TH>";
}
echo "</TR>";
while(OCIFetch($stmt))
{
echo "<TR>";
for ( $i = 1; $i <= $ncols; $i++ ) {
$column_name = OCIColumnName($stmt,$i);
echo "<TD>" . OCIResult($stmt, $column_name) . "</TD>";
}
echo "</TR>";
}
echo "</TABLE>";
OCIFreeStatement($stmt);
OCILogoff($conn);
?>
ブラウザからアクセスしてみて、以下のようにテーブルの内容が表示されればOKです。
10.必要であれば、サービスに登録する
もし、WinNT・Win2000にインストールするなら、サービスとして登録しましょう。
> cd [apache.exeがあるディレクトリ]
> apache -i インストール
> apache -u アンインストール
|