当你安装一个Oracle数据库时,安装程序会自动地为其产品和特性安装数据库所依赖的Apache 1.3 HTTP服务器。这样在同一台机器上为了数据库站点开发而安装另外一个Web服务器,这看起来显得浪费资源,但是,这样可以更有效地在Oracle Apache服务器上添加各种模块以支持更多的额外产品。
这篇文章讲述了在Oracle 9i 默认Apache Web服务器上安装PHP支持的必要步骤。我们使用了Windows操作系统的路径和名称,但在UNIX和其它操作系统中也是相似的。(请注意Oracle公司已经宣称Oracle 10g将包含PHP支持。)
第一步是从php.net获得PHP模块。下载这一模块,并在一定的路径下解压缩。在这一步里,我将使用c:php作为安装PHP的目录,这一目录中包含可执行程序,而且我将使用c:oracleora92作为我的Oracle Home。
第二步,将文件php4ts.dll复制到sapi子目录下,这是php4apache.dll所必需的。
第三步,建立一个php.conf文件,以包含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目录下保存这一文件。使用以下代码行将php.conf文件与httpd.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,"selectinitcap(ename) from emp order by
1");
ora_exec($cursor);
while (ora_fetch($cursor))
{
$ename
= trim(ora_getcolumn($cursor,"ENAME"));
echo $ename."
";
}
?>
</pre>
</body>
</html>