2009-04-01

Working PHP and Oracle under Redhat EL 5

众所周知,PHP对MySQL的接口做得很好,LAMP名声在外,但是对于其他数据库的支持貌似就差了点。以前试着用过一次PHP的SQLServer接口(mssql),感受是做得相当粗糙。但是考虑到SQLServer是windows阵营的,应用也仅限于windows操作系统,也就情有可原了。但是对于Oracle这个重量级&跨平台通吃的家伙,PHP的支持又怎样呢?

手册中有两个关于Oracle的函数库。其中一个名为Oracle Functions,是比较旧的哪个版本,已经废弃。第二个为OCI8 函数库,是当前使用的版本。基本上实现了OCI的功能(包括事务与LOB操作等),看起来还不错(没用过,因此性能有待考证)。

顾名思义,OCI8函数库使用OCI实现,而使用OCI是必须要安装Oracle提供的客户端的。虽然Oracle的客户端是免费软件,但并不是自由软件,所以一般的发行版在打包的时候不会包含进来。因此,需要自己动手配置一下才能使用。

下面的步骤在Redhat EL 5上测试通过,在其他发行版上应该也是大同小异,写在这里以供参考。

1、安装配置Oracle客户端

a) 下载Oracle Instant Client

下载basic,sdk,sqlplus三个包

        instantclient-basic-linux32-11.1.0.7.zip
        instantclient-sdk-linux32-11.1.0.7.zip
        instantclient-sqlplus-linux32-11.1.0.7.zip

b) 安装并配置

按照Oracle的传统,放在/opt下

        # mkdir /opt/oracle
        # unzip instantclient-basic-linux32-11.1.0.7.zip
        # unzip instantclient-sdk-linux32-11.1.0.7.zip
        # unzip instantclient-sqlplus-linux32-11.1.0.7.zip

解压完后都在一同个目录instantclient_11_1中

        # mv instantclient_11_1  /opt/oracle/instantclient

(更多…)