在 Microsoft Windows XP 上安装 Oracle Database、PHP 和 Apache


针对 PHP 5.4 和 Oracle Database 11g 第 2 版进行了更新


作者:Rob Clevenger 和 Christopher Jones

2012 年 4 月更新

您准备好开始使用 PHP 与 Oracle 数据库通信了吗?下面我们演示在 Windows 上安装 Oracle Database、Apache HTTP Server 和 PHP 所需的步骤。对本例而言,我们将使用 Windows XP Professional。

软件要求
 

软件版本软件说明
适用于 Windows x32 的 Oracle Database 11g 第 2 版快捷版11.2www.oracle.com/technetwork/cn/products/express-edition/overview
Apache HTTP Server2.2httpd.apache.org
PHP Hypertext Processor5.4php.net

 


安装 Oracle

您可以选择 Oracle Database 的安装位置。您可以在此 Windows 计算机上进行本地安装,也可以决定使用位于其他计算机上的数据库。如果您的数据库不在计算机上,则转到在 Linux 和 Windows 上安装 PHP 和 Oracle Instant Client 一文。

否则,如果这是您首次使用 Oracle,则安装 Oracle Database 11g 快捷版(通常称为“XE”)只需几分钟。下载快捷版 ZIP 文件 OracleXE112_Win32.zip,解压缩此文件,导航到 DISK1 文件夹,运行 setup.exe 以启动安装向导。XE 安装指南对此进行了详细介绍。

启动和停止 Oracle

安装之后,Oracle XE 将运行。您可以对其进行测试,为此通过浏览器打开管理页面。单击任一红色按钮链接时,系统将提示您登录。使用用户名“SYSTEM”以及您在数据库安装过程中选择的口令。

如果您需要随时重新启动数据库,则使用 Windows 的“开始”->“所有程序”->“Oracle Database 11g Express Edition”菜单上的“Start Database”和“Stop Database”项。

安装 Apache HTTP Server

安装步骤:

  • httpd.apache.org/download.cgi 下载 httpd-2.2.22-win32-x86-no_ssl.msi

  • 双击 MSI 文件启动安装向导。

    安装“for All Users, on Port 80”,因为“only for the Current User”备选项与 Oracle XE 的默认端口 8080 冲突。

    在默认目标文件夹中进行典型安装:C:\Program Files\Apache Software Foundation\Apache2.2

  • httpd.apache.org/download.cgi#mod_fcgid 下载 FastCGI 组件 mod_fcgid-2.3.6-win32-x86.zip

  • 将此组件解压缩到已安装的 Apache 2.2 目录中。C:\Program Files\Apache Software Foundation\Apache2.2\modules 目录现在应该包含 mod_fcgid.somod_fcgid.pdb 文件。

  • 编辑 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf 并添加以下代码行:

    LoadModule fcgid_module modules/mod_fcgid.so
  • httpd.conf 中,找到 htdocs 部分并将 ExecCGI 添加到 Options

    <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
    ...
    Options Indexes FollowSymLinks ExecCGI
    ...
    </Directory>
    

 


启动和停止 Apache

作为安装的一部分,将启动 Web 服务器。您现在应该测试计算机,为此通过 Web 浏览器打开 http://localhost/。您应该看到一个显示“It works!”的页面。

您的系统托盘中有一个 Apache Monitor 控件,可以在需要时轻松停止和重新启动 HTTP Server。或者,使用添加到 Windows 的“开始”->“所有程序”->“Apache HTTP Server 2.2”菜单的 Apache 选项。

安装 PHP

安装步骤:

  1. windows.php.net/download 下载 PHP 5.4.0“VC9 x86 Non Thread Safe”ZIP 程序包 php-5.4.0-nts-Win32-VC9-x86.zip

  2. 在 Windows 资源管理器中,将 PHP 程序包解压缩到名为 C:\php-5.4.0 的目录中

  3. C:\php-5.4.0 中,将 php.ini-development 复制到 php.ini

  4. 编辑 php.ini,进行以下更改:

    • 添加如下时区代码行:

      date.timezone = America/Los_Angeles

      使用您的本地时区名称。

    • 添加以下代码行:

      extension_dir = C:\php-5.4.0\ext

      这是包含 PHP 扩展的目录。

    • 删除以下代码行前的分号:

      extension=php_oci8_11g.dll
      

      此扩展适用于任意 Oracle 11.2 客户端库,包括 Oracle XE 中的客户端库。

  5. 编辑 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf 并添加以下代码行。确保您使用正斜杠“/”而不是反斜杠“\”:

    FcgidInitialEnv PHPRC "c:/php-5.4.0"
    AddHandler fcgid-script .php
    FcgidWrapper "c:/php-5.4.0/php-cgi.exe" .php
    

您现在必须重新启动 Apache Server 以便测试 PHP 安装。使用系统托盘中的 Apache Monitor 或“开始”菜单选项。

如果有问题,则检查日志文件 C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log。仔细检查 httpd.confphp.ini 文件。确保在安装 Oracle Database XE 之后重新启动计算机,以便 PATH 环境变量包括 Oracle 库。

使用 Oracle 测试 Apache 和 PHP

使用 Oracle 测试 PHP 很简单。您只需将 PHP 文件放在文档根目录 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

以下是两个 PHP 测试文件。

phpinfo.php

第一个文件测试基本 PHP 安装。在浏览器中通过 http://localhost/phpinfo.php 打开此文件。如果 PHP 安装正确,您应该看到一个大的页面,上面全部都是 PHP 配置信息。

<?php
phpinfo();
?>


检查是否有一个标题为“oci8”的部分,其中包含版本号和 OCI8 指令。

oci8test.php

编辑此脚本并将口令更改为您针对 SYSTEM 选择的口令。在浏览器中通过 http://localhost/oci8test.php 加载此脚本。

对于 Oracle Database XE,数据库连接字符串仅为 "localhost/XE"。如果您设置了防火墙,或者 localhost 由于某种其他原因而无法解析,您可能需要使用 IP 地址 127.0.0.1 或计算机的 DNS 名称替换“localhost”。如果未使用 XE,则将您数据库的连接字符串更改为 Oracle 网络条目。

<?php

$c = oci_connect("system", "your_password", "localhost/XE");
$s = oci_parse($c, "select table_name from all_tables where owner = 'HR'");
$r = oci_execute($s);

echo "<table border='1'>\n";
$ncols = oci_num_fields($s);
echo "<tr>\n";
for ($i = 1; $i <= $ncols; ++$i) {
	$colname = oci_field_name($s, $i);
	echo "  <th><b>".htmlentities($colname, ENT_QUOTES)."</b></th>\n";
}
echo "</tr>\n";

while (($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
	echo "<tr>\n";
	foreach ($row as $item) {
		echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES):"&nbsp;")."</td>\n";
	}
	echo "</tr>\n";
}
echo "</table>\n";

?>


此脚本显示 HR 用户拥有的表。HR 示例模式随 Oracle Database XE 一起提供。您可以执行解除对示例用户帐户的锁定手册部分,解除访问锁定并设置口令。然后,您可以编辑此脚本,以“HR”身份进行连接,并查询一个示例表(例如 EMPLOYEES)。

总结

您现在应该已安装并配置了 Oracle Database、Apache HTTP Server 和 PHP。此时,您可以开始在 Oracle 平台上编写 PHP 应用程序。

Oracle 的免费 PHP 和 Oracle 秘笈包含有关如何结合使用 PHP 与 Oracle Database 的更多详细信息。

有关 PHP 和 Oracle 的更多信息,请访问 OTN PHP 开发人员中心

还可以在 PHP 论坛上发布任何问题。