在Apache 服务器上启用PHP支持
在安装一个 Oracle 服务器时,会自动地安装Apache 1.3 HTTP 服务器,Oracle 数据库的很多产品和特性都依赖于该服务器。对于数据库驱动的 Web 站点开发来说,在一台机器上安装第二个 Web 服务器看上去好象有点浪费资源。 简单地添加一些模块到Oracle Apache 上来支持其它产品将会更加高效。
这个专栏讲述在Oracle 9i 缺省 Apache Web 服务器上安装 PHP 支持。在这里我们将使用 Windows 路径和名称,但是 UNIX 和其它操作系统也与之类似。(注意 Oracle 已经宣称它的Oracle 10g 中将提供 PHP 支持。)
第一步是为期望的 Web 站点从php.net 获取 PHP 模块。下载这个模块,解压到一个目录下,然后(如果需要则)根据安装脚本构建二进制文件。从这里开始,我将使用c:\php 作为包含可执行文件的 PHP 目录的安装根目录,使用c:\oracle\ora92 作为 Oracle Home。
第二步,将文件php4ts.dll(脚本引擎)复制到sapi 子目录。php4apache.dll 需要这个文件,而且如果它们在同一目录,就比较容易定位。
第三步,创建一个 php.config 文件,在该文件中包含 Oracle 的 Apache 服务器的与 PHP 相关的设置:
# Apache configuration to enable PHP
LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
然后将这个文件保存到$ORACLE_HOME/Apache/Apache/conf 目录。在httpd.conf 文件中使用下面这行代码(放在oracle.conf 包含的后面)引用它:
include "C:/oracle/ora92/Apache/Apache/conf/php.conf"
最后,将文件php.ini-recommendation 复制到C:/oracle/ora92/Apache/Apache 目录下,改名为php.ini。需要启用 Oracle 扩展才能够访问数据库。首先,确保extension_dir 是一个完整的路径,而不是缺省的“/”目录:
extension_dir = "c:/php/extensions/"
然后,去除引用 Oracle 的一行代码的注释:
extension=php_oracle.dll
常规地重新启到 Web 服务器,检查是否有错误。然后编写一个非常简单地 PHP 脚本(以test.php 为文件名保存在$ORACLE_HOME/Apache/Apache/htdocs 中):
<html>
<head><title>PHP Test</title></head>
<body>
<?php echo "Hello World"; ?>
</body>
</html>
应该还可以运行一个完整地 PHP 脚本,该脚本通过 PHP 扩展调用访问一个 Oracle 数据库(将其以oratest.php为文件名保存在$ORACLE_HOME/Apache/Apache/htdocs 中):
<html>
<head><title>PHP Test with Oracle</title></head>
<body>
<pre>
<?php
$conn = ora_logon("scott","tiger");
ora_commitoff($conn);
$cursor = ora_open($conn);
ora_parse($cursor,"select initcap(ename) from emp order by 1");
ora_exec($cursor);
while (ora_fetch($cursor))
{
$ename = trim(ora_getcolumn($cursor,"ENAME"));
echo $ename."\n";
}
?>
</pre>
</body>
</html>