Oracle Technology Network (OTN) > Downloads, Discussions, and Documentation for Developers and DBAs

在 Windows 2000/XP 上安装 Oracle、PHP 和 Apache

作者:Robert Clevenger

您希望使用 PHP 与 Oracle 数据库通信吗?下面我们演示将 Oracle 数据库、Apache HTTPD 服务器,以及 PHP 作为一个 Apache 模块安装到 Linux 上所需的步骤。对本例而言,我们将使用 Windows XP Professional。

软件需求:
软件 版本 URL
Oracle RDBMS 10.1 http://www.oracle.com/technology/software/products/database/oracle10g/index.html
Apache HTTPD Server 1.3.33 http://httpd.apache.org/download.cgi
PHP — PHP 超文本处理器 4.3.9 http://www.php.net/downloads.php

安装 Oracle

您有两种选择。您既可以把数据库本地安装在 Windows 机器上,或者也可以决定使用您网络中另外一台机器上的 Oracle 服务器。如果您的数据库是远程的,那么只需要在这个机器上安装 Oracle 客户端。如果您的数据库是本地的,那么需要安装完整的 Oracle RDBMS Server。

安装 Apache HTTP Server

获得 Windows 上的 Apache 的最容易的方式是下载 Apache HTTP Server 的自解压可执行文件 (EXE) 包 apache_1.3.33-win32-x86-no_src.exe。要安装此机器,您只需双击此文件并遵循向导的说明。我在 C:\Program Files\Apache Group\ 下安装 Apache,不过也可以在其他任意目录下。

启动 Apache

您既可以从 command shell 启动 Apache,也可以将其作为服务进行安装。在测试时,我通常从命令行启动和停止 Apache。

C:\Program Files\Apache Group\Apache>start Apache.exe

您还将看到新命令行外壳打开时显示下列消息:

Apache/1.3.33 (Win32) running...

现在您应该测试 Apache 是否在机器上正常启动和运行,测试方法是打开您的 web 浏览器连接到 URL http://localhost

注意:如果您使用防火墙或者如果 localhost 由于某些原因无法解析,可能需要把 "localhost" 替换为机器的 DNS 名。

现在应该停止 Apache HTTP 服务器,执行下面的命令:

C:\Program Files\Apache Group\Apache>start Apache.exe -k stop

安装 PHP

您会发现这里的安装说明与您下载的 PHP 档案中包含的 install.txt 文件内的说明非常类似。请随意使用它作为指南,这里的说明只是该文档中包含的信息的一个子集。因为 Apache 已安装了,因此您现在可以安装 PHP。

安装步骤

  1. 将 PHP 包解压至根目录,这将产生一个类似 "C:\php-4.3.9-Win32" 的目录。
  2. php.ini-dist 拷贝至 %SYSTEMROOT%\php.ini
  3. 编辑 %SYSTEMROOT%\php.ini 并执行下列操作:
    1. 把下面这一行解除注释(删除该行开头的分号): extension=php_oci8.dll
    2. doc_root 设置为 Apache 的 htdocs 目录(例如:C:\Program Files\Apache Group\Apache\htdocs)

  4. 将下列文件复制到包含 apache.exe 应用程序的目录:
    1. c:\php-4.3.9-Win32\php4ts.dll
    2. c:\php-4.3.9-Win32\extensions\php_oci8.dll
  5. 编辑文件 httpd.conf 并添加下列行:

注意:

  1. 将 c:/php-4.3.9-Win32 替换成您的 PHP 安装位置
  2. 用斜线 '/' 替代反斜线 '\'
	  #
# This will load the PHP module into Apache.Put this line with other LoadModule lines.
#

LoadModule php4_module c:/php-4.3.9-Win32/sapi/php4apache.dll
# # Add this with the other AddModule lines. # AddModule mod_php4.c # # This next section will add a handler for .php files, put it with other IfModule lines. # <IfModule mod_php4.c> AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml AddType application/x-httpd-php-source .phps </IfModule>

启动 Oracle Database

启动 Oracle Database 和 Oracle Listener 涉及到使用位于控制面板下的管理工具文件夹中的 Services Applet。有两个服务必须启动。现在请启动它们。

  1. OracleServiceORCL
  2. OracleOraDb10g_home1TNSListener

注意:服务名可能会不同,但它们会极为相似,很容易判断是哪个服务。查找 "OracleSerivce{ORACLE_SID}",以及 "Oracle{ORACLE_HOME}TNSListener"

启动 Apache HTTP Server

现在您必须重新启动 Apache Server 以便测试 PHP 安装。完全象以前一样启动 Apache,并查看有没有任何错误消息。如果您在启动 Apache 时接收到错误消息,可以删除 Apache.exe 命令前面的 "start"。您将需要再打开一个命令行 Shell 来调用关闭命令。

C:\Program Files\Apache Group\Apache>Apache.exe
Apache/1.3.33 (Win32) PHP/4.3.9 running...

如果您收到任何错误,请仔细检查 httpd.conf 并纠正错误。

使用 Oracle 测试 Apache 和 PHP

使用 Oracle 测试 PHP 很简单。您只需将一个 PHP 文件放到您的 htdocs 目录中;通常为 C:\Program Files\Apache Group\Apache\htdocs

此处有两个文件,第一个用于测试基本 PHP 安装。如果安装了 PHP,您应该看见一个大的页面,上面全部都是 PHP 配置信息。第二个文件显示 SCOTT 模式中 EMP 表的 ENAME 和 SAL 列的一部分。这要求安装 SCOTT 模式,否则您将需要更改该页面。

phptest.php

<html>
<head>
<title>PHP Installation Test</title>
</head>
<body>
<?php phpinfo(); ?>
</body>
</html>

oci8test.php

注意:如果您的 Oracle 数据库不是本地的,那么请按如下方式编辑第二行 — 用您的服务器的 TNS 条目替换 MyDatabaseTNSEntryName

$db_conn = ocilogon( "scott", "tiger", "MyDatabaseTNSEntryName" );
      
<?php 

$db_conn = ocilogon( "scott", "tiger" );

$cmdstr = "select ename, sal from emp";

$parsed = ociparse($db_conn, $cmdstr);
ociexecute($parsed);

$nrows = ocifetchstatement($parsed, $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["ENAME"][$i] ."</td>";
echo "<td>$ " . number_format($results["SAL"][$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 HTTPD Server 和 PHP。现在,您既可以开始学习 PHP,也可以开始在 Oracle 平台上编写 PHP 应用程序。

Robert Clevenger 是 Oracle 应用程序开发工具首席产品经理。Robert 于 1997 年 加入 Oracle,支持 Windows 平台的开发人员。1999 年,Robert 加入了 JDeveloper 的开发小组并帮助创建该产品的 Oracle9i java 版本。在发布了 Oracle9i 的首个版本之后,他转至产品管理部门工作,重点负责开放源代码项目以及与 Oracle 合作伙伴更加密切地合作。

E-mail this page
Printer View Printer View