Apache服务器上使PHP生效

ZDNet软件频道 时间:2004-05-12 作者: |  我要评论()
本文关键词:oracletips
当你安装一个Oracle数据库时,安装程序会自动地为其产品和特性安装数据库所依赖的Apache 1.3 HTTP服务器。
本文译自Builder.com,未经许可请勿转载

当你安装一个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>

 


本文作者:Scott Stephens在Oracle公司工作已经超过13年,他从事的领域包括技术支持,商务技术,市场,以及软件开发。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134