作者: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.2 | www.oracle.com/technetwork/cn/products/express-edition/overview |
Apache HTTP Server | 2.2 | httpd.apache.org |
PHP Hypertext Processor | 5.4 | php.net |
您可以选择 Oracle Database 的安装位置。您可以在此 Windows 计算机上进行本地安装,也可以决定使用位于其他计算机上的数据库。如果您的数据库不在计算机上,则转到在 Linux 和 Windows 上安装 PHP 和 Oracle Instant Client 一文。
否则,如果这是您首次使用 Oracle,则安装 Oracle Database 11g 快捷版(通常称为“XE”)只需几分钟。下载快捷版 ZIP 文件 OracleXE112_Win32.zip,解压缩此文件,导航到 DISK1
文件夹,运行 setup.exe
以启动安装向导。XE 安装指南对此进行了详细介绍。
安装之后,Oracle XE 将运行。您可以对其进行测试,为此通过浏览器打开管理页面。单击任一红色按钮链接时,系统将提示您登录。使用用户名“SYSTEM”以及您在数据库安装过程中选择的口令。
如果您需要随时重新启动数据库,则使用 Windows 的“开始”->“所有程序”->“Oracle Database 11g Express Edition”菜单上的“Start Database”和“Stop Database”项。
安装步骤:
从 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.so
和 mod_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>
作为安装的一部分,将启动 Web 服务器。您现在应该测试计算机,为此通过 Web 浏览器打开 http://localhost/。您应该看到一个显示“It works!”的页面。
您的系统托盘中有一个 Apache Monitor 控件,可以在需要时轻松停止和重新启动 HTTP Server。或者,使用添加到 Windows 的“开始”->“所有程序”->“Apache HTTP Server 2.2”菜单的 Apache 选项。
安装步骤:
从 windows.php.net/download 下载 PHP 5.4.0“VC9 x86 Non Thread Safe”ZIP 程序包 php-5.4.0-nts-Win32-VC9-x86.zip。
在 Windows 资源管理器中,将 PHP 程序包解压缩到名为 C:\php-5.4.0
的目录中
在 C:\php-5.4.0
中,将 php.ini-development
复制到 php.ini
编辑 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 中的客户端库。
编辑 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.conf
和 php.ini
文件。确保在安装 Oracle Database XE 之后重新启动计算机,以便 PATH
环境变量包括 Oracle 库。
使用 Oracle 测试 PHP 很简单。您只需将 PHP 文件放在文档根目录 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs 中
以下是两个 PHP 测试文件。
第一个文件测试基本 PHP 安装。在浏览器中通过 http://localhost/phpinfo.php 打开此文件。如果 PHP 安装正确,您应该看到一个大的页面,上面全部都是 PHP 配置信息。
<?php phpinfo(); ?>
检查是否有一个标题为“oci8”的部分,其中包含版本号和 OCI8 指令。
编辑此脚本并将口令更改为您针对 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):" ")."</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 论坛上发布任何问题。