windows下和linux下PHP支持oracle

来源:互联网 发布:动漫网站源码下载 编辑:程序博客网 时间:2024/05/21 17:24

windows下:
1.下载用于 Windows 的 Instant Client Basic 程序包:http://download.oracle.com/otn/nt/instantclient/111070/instantclient-basic-win32-11.1.0.7.0.zip
2.解压缩
创建一个子目录(例如,d:/oci),然后从压缩文件中复制以下库:
oraociei10.dll
orannzsbb10.dll
oci.dll
到此目录下

打开PHP.ini文件里的php_oci8.dll那句的注释

添加PATH变量和TNS_ADMIN 变量,值是:
d:/oci

在:d:/oci下面创建tnsnames.ora


ORALOCAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.162)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xe)
    )
  )

其中ORALOCAL可以任意指定,xe是服务名称

然后就可以直接用:oci_connect($dbuser, $dbpw, 'ORALOCAL');访问数据库了

linux 下
下载以下几个文件:
oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm

安装 apm -Uvh oracle-instantclient11.1-*

$pecl install oci8--这里需要把pecl连接一下到环境变量能访问到的,否则需要用绝对路径
这里需要安装autoconfig如果未安装会报错,可以用包管理器来安装。

如果不成功,可以去/tmp/pear/download/oci8-1.3.5自行编译:
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/11.2/client/lib/

apachectl restart

也可以把tnsnames.ora 放到一个目录下,然后加到环境变量内:export TNS_ADMIN=/usr/local/php/lib

然后就可以直接用:oci_connect($dbuser, $dbpw, 'ORALOCAL');访问数据库了