欢迎进入oracle社区论坛,与200万技术人员互动交流 >>进入
基本介绍
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 10g (服务器或者客户端)已经安装完毕。如果没有安装,请参考这篇文档:
http://www.dbanotes.nethttp://oracle.chinaitlab.com/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
addtype application/x-httpd-php .php
重新启动 apache:
[root@fc3 ]# /bin/stopapache
[root@fc3 ]# /bin/startapache
测试 php 模块
测试 php 模块是否已经可用。当然是标准办法,写一个包含如下内容的php页面 info.php:
从浏览器中查看该页面输出内容。
注意,该页面中的内容 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):
说明:上例中,scott/tiger分别为数据库的用户名字和密码,test为数据库连接串名字。
