By Robert Clevenger
更新:Christopher Jones、2010年10月
PHPを使用してOracle Databaseとやり取りする準備ができていますか。 ここでは、Oracle Database、Apache HTTP Server、PHPをApacheモジュールとしてWindowsにインストールする手順について説明します。 この例ではWindows XP Professionalを使用しています。
ソフトウェア | バージョン | URL |
Oracle Database 10g Express Edition | 10.2 | http://www.oracle.com/technetwork/database/express-edition/ |
Apache HTTP Server | 2.2 | http://httpd.apache.org/download.cgi |
PHP Hypertext Processor | 5.3 | http://windows.php.net/download/ |
Oracle Databaseをインストールするには、次の2つの方法があります。 Windowsマシン上にローカルでデータベースをインストールするか、または別のマシン上のOracleサーバーをネットワーク経由で使用できます。 データベースをリモートから使用する場合、『Installing PHP and the Oracle Instant Client for Linux and Windows』を参照してください。
それ以外でOracle Databaseを初めて使用する場合は、Oracle Database 10g Express Editionをインストールします。この作業はわずか数分で完了します。 Express Edition("XE")の自己解凍型実行可能ファイルOracleXE.exeをダウンロードし、ダブルクリックするだけで、インストール・ウィザードが実行されます。
インストールが完了すると、Oracle XEが実行されます。 ブラウザでデータベースのホームページhttp://127.0.0.1:8080/apex/を開くと、データベースのテストを実行できます。 ユーザー名"SYSTEM"と、インストール時に指定したパスワードを使用します。
データベースを再起動する必要がある場合は、Windowsの「スタート」メニューから「Start Database」と「Stop Database」を使用します。
Windows上にApacheをインストールする際、もっとも簡単な方法はApache Server ProjectからMicrosoft Windowsインストーラ(例:httpd-2.2.16-win32-x86-no_ssl.msiパッケージ)をダウンロードする方法です。 ローカル・マシンにインストールするには、ファイルをダブルクリックし、ウィザードの指示に従います。 "only for the Current User"オプションを選ぶとOracle XEのデフォルト・ポートである8080と競合するため、"for All Users, on Port 80"を選択します。Apacheのロケーションには、デフォルトのC:\Program Files\Apache Software Foundation\Apache2.2が選択されていますが、その他のディレクトリでも問題ありません。
インストール中にWebサーバーが開始されます。 Webブラウザでhttp://localhost/を開いて、ローカル・マシンでテストを実行します。 'It works!'をいうメッセージを表示したページが確認できます。
システム・トレイにApache Monitorコントロールが表示されるため、必要に応じて簡単にHTTP Serverを停止し、再起動することができます。 または、Windowsのスタートメニューに追加されたApacheオプションを使用します。
php.netから、PHP 5.3.3の"VC6 x86 Thread Safe"ZIPパッケージであるphp-5.3.3-Win32-VC6-x86.zipをダウンロードします。
インストール手順
PHPパッケージを解凍し、C:\php-5.3.3ディレクトリにファイルを移動します。
php.iniを開き、次の内容を編集します。
extension_dir = "C:\php-5.3.3\ext"のように設定します。このディレクトリにはphp_oci8.dllとその他のPHP拡張が含まれています。
extension=php_oci8.dllの行のコメントを外します(行の開始部分からセミコロンを削除します)。
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.confを開き、次の行を追加します。 バック・スラッシュ'\'ではなく、スラッシュ'/'を使用するよう注意してください。
# # This will load the PHP module into Apache # LoadModule php5_module c:/php-5.3.3/php5apache2_2.dll # # This next section will call PHP for .php and .phtml files # AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml # # This is the directory containing php.ini # PHPIniDir "C:/Program Files/Apache Software Foundation/Apache2.2/conf"
PHPのインストールをテストするには、Apache Serverを再起動する必要があります。 システム・トレイのApache Monitorか、スタートメニューのオプションを使用します。 問題が発生する場合、ログ・ファイルであるC:\Program Files\Apache Software Foundation\Apache2.2\logs\error.logを確認します。
エラーが発生する場合、httpd.confとphp.iniを再確認し、問題を修正します。
Oracle DatabaseにおけるPHPのテストは簡単です。 ドキュメントのルート・ディレクトリ(通常はC:\Program Files\Apache Software Foundation\Apache2.2\htdocs)にPHPファイルを配置するだけで完了です。
PHPのテストに使用されるファイルは2つあります。
1番目のファイルを使用すると、基本的なPHPのインストールがテストされます。 ブラウザでhttp://localhost/phpinfo.phpへ移動し、このファイルを開きます。 PHPがインストールされている場合、PHP構成情報を含んだ大きいページが表示されます。
<?php phpinfo(); ?>
"oci8"というタイトルの付いたセクションを確認します。
2番目のファイルを使用すると、HRユーザーに所有されたEMPLOYEES表からname列とsalary列が取得され、表示されます。 このテストを実行するには、HRスキーマがインストールされていなければなりません。そうでない場合、スクリプトを変更する必要があります。 HRスキーマはOracle Database XEに同梱されています。 Database home pageのAdminstrationセクションを使用すると、アクセスをアンロックし、パスワードを設定することができます。
Oracle Database XEでは、データベースの接続文字列として単純に"localhost/XE"が使用されています。 マシンがファイアウォールの内側にあるか、または何らかの理由でlocalhost が解決されない場合、"localhost"をIPアドレス(127.0.0.1)またはマシンのDNS名で置換する必要があります。 XEを使用していない場合、接続文字列をデータベースのOracle Networkエントリに変更します。
<?php $conn = oci_connect("hr", "hr_password", "localhost/XE"); $stid = oci_parse($conn, "select last_name, salary from employees"); oci_execute($stid); $nrows = oci_fetch_all($stid, $results); echo "<html><head><title>Oracle PHP Test</title></head><body>"; echo "<center><h2>Oracle PHP Test</h2><br>"; echo "<table border=1 cellspacing='0' width='50%'>\n<tr>\n"; echo "<td><b>Name</b></td>\n<td><b>Salary</b></td>\n</tr>\n"; for ($i = 0; $i < $nrows; $i++ ) { echo "<tr>\n"; echo "<td>" . $results["LAST_NAME"][$i] . "</td>"; echo "<td>$ " . number_format($results["SALARY"][$i], 2). "</td>"; echo "</tr>\n"; } echo "<tr><td colspan='2'> Number of Rows: $nrows</td></tr></table>"; echo "<br><em>If you see data, then it works!</em><br></center></body></html>\n"; ?>
これで、Oracle Database、Apache HTTP Server、PHPのインストールと構成が完了しました。 この時点で、Oracleプラットフォーム上でPHPアプリケーションを作成する準備ができています。
Oracle DatabaseでPHPを使用する方法について、詳しくはオラクルが無償で提供しているUnderground PHP and Oracle Manualを参照してください。
PHP Developer CenterOracle XE forumとPHP Forumを利用すると、質問を投稿することができます。