本篇文章是以32位系统为例。
所需文件下载地址:
http://www.oracle.com/technetwork/topics/linuxsoft-082809.html
下载的话必须注册,有好几十个字段让你填。。蛋疼去吧。。
要远程使用oracle,先下载下面三个文件,注意版本最好一致。
一、安装oracle客户端
rpm安装方法:
下载以下三个文件:
oracle-instantclient-basic-10.2.0.4-1.i386.rpm
oracle-instantclient-devel-10.2.0.4-1.i386.rpm //这个是sdk 的,文件名上没有说明,特此说明oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
用以下命令安装
[root@localhost ~]# rpm -ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm oracle-instantclient-devel-10.2.0.4-1.i386.rpm oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
编译安装方法:
oracle-instantclient-basic-10.2.0.4-1.i386.zip
oracle-instantclient-devel-10.2.0.4-1.i386.zip //这个是sdk 的,文件名上没有说明,特此说明
oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip
//查看oracle的sql语句,当然你如果无法上去,只能问远程oracle 的管理员了。
select * from V$version ;
1、先创建三个客户端的安装目录,这三个目录可以自定义,但配置环境变量时,需要一致。
[root@localhost ~]# mkdir -p /opt/oracle/lib
[root@localhost ~]# mkdir -p /opt/oracle/sdk
[root@localhost ~]# mkdir -p /opt/oracle/network/admin //配置监听器和网络环境。
2、解压上面下载的三个文件。
[root@localhost ~]# unzip oracle-instantclient-basic-10.2.0.4-1.i386.zip
[root@localhost ~]# unzip oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip
其中,这二个文件都解压到当前目录下的同一个目录下面:instantclient_10_2
[root@localhost ~]# cd instantclient_10_2
把这个目录下的所有文件搬到 /opt/oracle/lib
最后解压oracle-instantclient-devel-10.2.0.4-1.i386.zip 把解压出来的文件 /opt/oracle/sdk
3、配置环境变量。
[root@localhost ~]# vi /etc/profile //注意,这是针对所有用户的环境变量,如果你想局限某用户,只能配置用户的配置文件了。
加入
export ORACLE_HOME=/opt/oracle
export LD_LIBRARY_PATH=/opt/oracle/lib
# 如果是rpm安装的,这里应该是:
export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client
export LD_LIBRARY_PATH="/usr/lib/oracle/10.2.0.4/client/lib"
保存并退出。
[root@localhost ~]# source /etc/profile //使配置文件立刻生效
[root@localhost ~]# echo $ORACLE_HOME //查看一下配置的环境变量是否成功
/opt/oracle
4、配置监听器和网络环境。
因为本地没有安装oracle 数据库,所以需要从安装oracle 数据库的目录弄三个文件过来。
[root@localhost admin]# pwd
/opt/oracle/network/admin
[root@localhost admin]# ls
listener.ora sqlnet.ora tnsnames.ora //就这三个文件,放到这个目录下
5.编辑三个文件
[root@localhost ~]# vi tnsnames.ora
BOSSDATA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.107)(PORT =1521)) //192.168.1.107 IP地址 ,端口号:1521
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =bossdata) //bossdata 全局数据名
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
vi listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =\opt\oracle) //注意,这个是刚才配置的$ORACLE_HOME
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.107)(PORT = 1521)) //这个上面有说明
)
)
6.已完成。测试。
[root@localhost ~]# cd /opt/oracle/lib
[root@localhost lib]# sqlplus
sqlplus: error while loading shared libraries: libsqlplus.so: cannot openshared object file: No such file or directory
//如果出现上面的问题,代表你的环境变量没设置好。请参考:第3点。
[root@localhost lib]# sqlplus system/javama@bossdata
SQL*Plus: Release 10.2.0.4.0 - Production on Sun Aug 1 12:20:08 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10gEnterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
这样测试客户端没问题了,再安装perl 的DBD
二、编译php-oci8
[root@localhost ~]# yum install libaio
下载地址http://pecl.php.net/package/oci8
然后执行命令
[root@localhost ~]# tar zxvf oci8-1.4.6.tgz
[root@localhost ~]# cd oci8-1.4.6/
[root@localhost ~]# /usr/local/php/bin/phpize
CFLAGS="-I/usr/include/oracle/10.2.0.4/client/"
CXXFLAGS="-I/usr/include/oracle/10.2.0.4/client/"
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=/usr/lib/oracle/10.2.0.4/client/
上面橙色的表示php的安装路径,红色的表示oracle路径,oracle路径会因为版本的不同文件夹名称有所不同,要到相应目录查看一下,确认路径正确。
再执行:
[root@localhost ~]# make
如果报错,就执行
[root@localhost ~]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/10.2.0.4/client/lib
[root@localhost ~]# make
[root@localhost ~]# make install
成功后会提示你执行make test,那就执行吧,可能会出现一堆的fail,但是不要紧。继续make install。
修改php.ini文件,添加
extension = "oci8.so"
重启apache,用phpinfo()函数查看oci8是否安装成功。
如果是nginx服务器,重启一下php-fpm
第一次安装的时候装错版本,重装了很多遍显示的仍然事老版本的扩展,必须要删除oci8-1.3.5这个目录重新解压,执行上面的命令才可以。