`
yanghuidang
  • 浏览: 967833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

整合Oracle 10g、Apache 2.0、Php 5

阅读更多

整合Oracle 10g、Apache 2.0、Php 5

作者:Fenng
日期:22-Nov-2004
出处:http://www.dbanotes.net
版本:0.01


基本介绍

2004年7月13日,PHP 官方站点正式发布了 PHP 5。Oracle 在 2004 年 8 月宣布将在拳头产品 Application Server 中提供对 PHP 的支持。先是在Oracle Application Server 10g (9.0.4) 提供 mod_php 模块,继而在Oracle Application Server 10g Release 2 (10.1.2) 中提供了 PHP 4.3的版本,接着Oracle JDeveloper 10g 也将提供对 PHP 扩展能力。相信,不久Oracle将正式支持 PHP 5。而随着 Oracle 技术社区的大力推广,也将有更多的开发人员利用 PHP 进行大型数据库引用的开发。

OTN 上已经有文档描述如何进行 10g / HTTPD 1.3/ PHP 4 的整合。所以这篇文档将描述如何整合 Oracle 10g、Apache (httpd 2)、PHP 5。便于快速的组建一个开发环境。如果您想对 PHP 的一些新功能(比如PDO)进行一下体验,那么本文可以作为一个开端。

Oracle、Apache、PHP三者之间的关系不妨借用一下这张示意图(原图地址):

Oracle Apache PHP relation

本文假定您的 Oracle 10g (服务器或者客户端)已经安装完毕。如果没有安装,请参考这篇文档

http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm

确定自己的 Oracle 处于可用状态。

本文所拥的操作系统为 Fedora Core 3 Linux,Oracle 版本为10 R1 (10.1.0.2)。

下载所需文件:HTTPD 和 PHP 5

HTTPD - httpd://httpd.apache.org (目前的版本是 2.0.52)
PHP 5 - http://www.php.net (最新版本是 5.0.2)

安装HTTPD

需要说明的是,现在 Apache 社区不推荐把 Apache 2.0 用在产品环境中.

[root@FC3 software]# tar -zxvf httpd-2.0.52.tar.gz
[root@FC3 software]# cd httpd-2.0.52
[root@FC3 httpd-2.0.52]# ./configure --prefix=/usr/local/apache \
                         --enable-module=so
[root@FC3 httpd-2.0.52]# make clean
[root@FC3 httpd-2.0.52]# make
[root@FC3 httpd-2.0.52]# make install
[root@FC3 httpd-2.0.52]# /usr/local/apache/bin/apachectl start                                  
[root@FC3 httpd-2.0.52]# /usr/local/apache/bin/apachectl stop    

安装说明:第三行指定 Apache 的架构独立的文件安装位置。同时指定将用模块的形式。

如果为了方便的话,可以创建两个脚本控制 Apache 的启动与关闭。

[root@FC3 ~]# vi /bin/startapache
添加如下内容:
#!/bin/sh
ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1

ORACLE_SID=TEST
export ORACLE_HOME ORACLE_SID
echo Starting Apache 
/usr/local/apache/bin/apachectl start

创建关闭 apache 的脚本:

[root@FC3 ~]# vi /bin/stopapache
添加如下内容:
#!/bin/sh
ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1

ORACLE_SID=TEST
export ORACLE_HOME ORACLE_SID
echo Starting Apache 
/usr/local/apache/bin/apachectl stop
修改文件权限:
[root@FC3 ~] chmod +x /bin/startapache /bin/stopapache

安装 PHP 5

[root@FC3 software]# tar -xjf php-5.0.2.tar.bz2                                             
[root@FC3 software]# cd php-5.0.2                                                          
[root@FC3 php-5.0.2]# export ORACLE_BASE=/u01/app/oracle                                     
[root@FC3 php-5.0.2]# export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1                    
[root@FC3 php-5.0.2]# export ORACLE_SID=TEST                                                 
[root@FC3 php-5.0.2]# export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin                           
[root@FC3 php-5.0.2]# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib                       
[root@FC3 php-5.0.2]# ./configure --with-apxs2=/usr/local/apache/bin/apxs \ 
                      --with-oci8=$ORACLE_HOME
[root@FC3 php-5.0.2]# make clean
[root@FC3 php-5.0.2]# make                                                                   
[root@FC3 php-5.0.2]# make install 
[root@FC3 php-5.0.2]# cp php.ini-dist /usr/local/lib/php.ini

安装说明:第三到七行其实有些罗嗦了,其目的是控制 root 用户的环境变量,其实也可以直接在 root 用户的.bash_profile文件中制定环境变量。当然了,也可以用 oracle 用户来进行 configure 与 make 。第八行中的 --with-oci8=$ORACLE_HOME 激活 oci8 支持。

接下来需要修改httpd.conf 文件的内容:

[root@FC3 php-5.0.2]# vi /usr/local/apache/conf/httpd.conf

添加如下内容:

LoadModule php5_module modules/libphp5.so

<IfModule mod_php5.c>
     AddType application/x-httpd-php .php
</IfModule>

重新启动 apache:

[root@FC3 ]# /bin/stopapache 
[root@FC3 ]# /bin/startapache

测试 PHP 模块

测试 PHP 模块是否已经可用。当然是标准办法,写一个包含如下内容的PHP页面 info.php:

<?php phpinfo(); ?>

从浏览器中查看该页面输出内容。

注意,该页面中的内容 Configure Command 那一行中的内容是否包括如下内容:

'--with-apxs2=/usr/local/apache/bin/apxs'
'--with-oci8=/u01/app/oracle/product/10.1.0/db_1'

注意:在测试之后,出于安全的考虑,请把该文件删除

测试 PHP 的 oci

写一个简单的页面测试 oci 是否可用 (Just a copy sample from OTN):

<?php

$db_conn = ocilogon( "scott", "tiger","TEST" );

$cmdstr = "select ename, sal from emp";

$parsed = ociparse($db_conn, $cmdstr);
ociexecute($parsed);

$nrows = ocifetchstatement($parsed, $results);

echo "<html><head><title>Oracle PHP Test</title></head><body>";
echo "<center><h2>Oracle PHP Test</h2><br>";
echo "<table border=1 cellspacing='0' width='50%'>\n\<tr>\n";
echo "<td><b>Name</b></td>\n<td><b>Salary</b></td>\n</tr>\n";

for ($i = 0; $i < $nrows; $i++ ) 
{
    echo "<tr>\n";
    echo "<td>" . $results["ENAME"][$i] . "</td>";
    echo "<td>$ " . number_format($results["SAL"][$i],   2). "</td>";
    echo "</tr>\n";

}

echo "<tr><td colspan='2'> Number of Rows: $nrows</td></tr></table>";
echo "<br><em>If you see data, then it works!</em><br></center></body></html>\n";

?>

说明:上例中,scott/tiger分别为数据库的用户名字和密码,TEST为数据库连接串名字。

参考文档

Installing Oracle, PHP, and Apache on Linux by Robert Clevenger
PHP:Apache 2.0 on Unix systems - http://www.php.net/manual/en/install.unix.apache2.php

更多信息


Oracle Open Source Developer Center - http://www.oracle.com/technology/tech/opensource/index.html


本文作者

Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。
个人技术站点:http://www.dbanotes.net/ 。可以通过电子邮件 dbanotes@gmail.com 联系到他。

原文出处

http://www.dbanotes.net/OpenSource/Oracle10g_Apache2_PHP5_Integration.htm

分享到:
评论

相关推荐

    jiaozhu.zip 教主 Oracle SQL改写优化 2.0版

    教主Oracle SQL高级查询优化改写完美培训视频 2.0版,这个我参与培训的,包含视频、SQL文件、教学文档内容完整,分享给大家学习,共同努力进阶转型开发DBA,人称教主,做sql改写十多年了,sql改写功底很强!

    System.Data.OracleClient.dll 2.0

    System.Data.OracleClient.dll 2.0

    oracle10G和oracle11G的OCI.dll

    在Oracle 10G和11G版本中,oci.dll扮演了至关重要的角色,为应用程序提供了访问数据库的底层接口。Navicat是一款流行的数据库管理工具,它利用oci.dll来连接并操作Oracle数据库。 Oracle 10G是Oracle公司在2003年...

    Oracle.ManagedDataAccess.dll net 2.0

    Oracle.ManagedDataAccess.dll net 2.0

    oracle 10g _64x

    Oracle 10g是Oracle公司推出的数据库管理系统的一个版本,它主要针对64位操作系统环境设计。Oracle数据库系统在IT行业中有着广泛的应用,尤其在大型企业、金融机构和互联网公司的数据存储和管理方面扮演着核心角色。...

    oracle 11g ,10g软件资源 百度云下载

    ### Oracle 11g与10g软件资源百度云下载相关知识点 #### 一、Oracle数据库简介 Oracle数据库是美国甲骨文公司的一款关系型数据库管理系统,在市场上占有重要的份额。Oracle数据库以其高度的安全性、可靠性和灵活性...

    Oracle10g 在windows上的安装

    ### Oracle10g在Windows环境下的安装指南 #### 一、Oracle 10g简介 Oracle Application Server 10g是Oracle公司推出的一款集成化的、基于标准的软件平台。它是Oracle 9i Application Server(Oracle9iAS)Release ...

    Oracle10g-linux安装包

    Oracle10g-linux安装包

    oracle傻瓜手册v2.0

    10. **最新特性**:随着Oracle数据库的不断升级,v2.0版手册可能会涵盖新的特性和功能,例如自动管理、云服务支持、JSON支持和大数据集成等。 通过《Oracle傻瓜手册v2.0》,初学者可以系统地了解和掌握Oracle数据库...

    Oracle 10g ODBC驱动 各种版本的

    Oracle 10g ODBC驱动程序是连接到Oracle数据库的关键组件,它允许应用程序通过开放数据库连接(ODBC)标准与Oracle 10g数据库进行通信。ODBC是一种接口,使得开发者能够编写一次代码,就可以在多种数据库系统上运行...

    Oracle_10g安装包

    Oracle_10g安装包Oracle_10g安装包Oracle_10g安装包Oracle_10g安装包

    oracle各个版本的驱动包oracle10g到19g

    oracle数据库驱动。包含了oracle oracle10g、11g、12c、19c的jar驱动包。解压密码是123456。

    windowsServer2008_64位安装oracle10G全过程

    - 查找`listener.ora`文件,通常位于Oracle安装目录下的`network\admin`子目录中(例如:`E:\Oracle10g\network\admin\listener.ora`)。 - 确保`SID_LIST_LISTENER`部分包含正确的SID名称和服务名。 - 示例配置...

    win7下安装oracle10g

    4. **环境准备**:确保系统已安装.NET Framework 2.0及更高版本,因为Oracle 10g需要此框架支持。 #### 三、修改配置文件 1. **refhost.xml**:这是一个配置文件,用于指定操作系统版本等信息。根据提供的XML代码...

    Oracle 数据导入工具 2.0b

    Oracle 数据导入工具 2.0b

    Oracle10g服务器在Windows_XP上安装

    ### Oracle10g服务器在Windows_XP上的安装与配置 #### 一、前言 Oracle 10g是Oracle公司推出的第十代数据库管理系统中的一个版本,它提供了许多新功能和改进,包括Grid Computing的支持,自动存储管理等。本文将...

    Oracle10g.Client的快速安装包

    中文名: Oracle 10g Client 快速安装包英文名: Oracle 10g Client别名: Oracle10g Client资源格式: 压缩包版本: Oracle10g地区: 大陆语言: 简体中文简介: Oracle10g Client的快速安装包,本人使用过几次,都是外出...

Global site tag (gtag.js) - Google Analytics