php连接oracle的简单步骤介绍

原因:因为公司的要求,我需要在我负责的一台服务器中连接操作oracle数据库,这是我第一次用php接触oracle;我在网上查询了很多资料,通过这些资料参考,我知道了想要用php连接oracle需要安装php的oci8扩展,所以我就开始跟公司的两位运维小哥一起实践探索了;下面呢,是我自己成功以后做的一个大概的操作步骤,希望可以给大家带来帮助吧。

第一步:你要有一个正常的lamp或者lnmp环境的linux服务器;

第二步:你需要先安装一个oracle及时客户端;

1.首先Oracle官网下载相关安装包:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

备注:根据访问数据的版本下载对应客户端。每种包又分.zip、.rpm两种格式包,zip包相当于解压后免安装版,rpm包需要安装版。

2.将下载下来的安装包,安装解压缩到/usr/local/oracle

rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

3.生成目录/usr/local/oracle/instantclient_11_2/network/admin,并cd进入该目录

4.在上述目录新建tnsnames.ora文件,并编辑数据库链接信息

history_162 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.197.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID =xxx) ) )

5.配置环境变量:vi .bash_profile

export ORACLE_HOME=/usr/local/oracle/instantclient_11_2

export TNS_ADMIN=$ORACLE_HOME/network/admin

##export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export LD_LIBRARY_PATH=$ORACLE_HOME

export PATH=$ORACLE_HOME:$PATH

 

配置完成后,执行:source .bash_profile

第三步:你需要去oracle官网下载oce包的相关扩展,下载的oci8要与你服务器的php版本对应,然后进行安装:

oci8-2.2.0扩展包下载:https://download.****.net/download/weixin_41617067/11096492

备用以防大家需要:rz文件上传扩展安装命令: yum -y install lrzsz

1、将下载的oci包进行加压:tar zxvf oci8-2.2.0.tgz

2、cd oci8-2.2.0/

3、/usr/local/php-7.2.9/bin/phpize  CFLAGS=/usr/lib/oracle/11.2/client64/ CXXFLAGS=/usr/lib/oracle/11.2/client64/

4、./configure --with-php-config=/usr/local/php-7.2.9/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib/

备注:第一个url是你php安装的目录,第二个目录是你oracle客户端的安装目录;

5、make

6、make install (这里多运行几次,直到出现如下提示)

/bin/sh /root/oci8-1.3.5/libtool --mode=install cp ./oci8.la /root/oci8-1.3.5/modules
cp ./.libs/oci8.so /root/oci8-1.3.5/modules/oci8.so
cp ./.libs/oci8.lai /root/oci8-1.3.5/modules/oci8.la
PATH="$PATH:/sbin" ldconfig -n /root/oci8-1.3.5/modules
----------------------------------------------------------------------
Libraries have been installed in:/root/oci8-1.3.5/modules

7、现在php中就会生成oci8.so (我的PHP版本是7.2.9);你可以通过:find / -name oci8.so 命令查找出oci8.so的正确路径;

8、打开你php目录下的etc中的php.ini文件,找到文件中的 [oci8] ,在其下面加上:extension = "/usr/local/php-7.2.9/lib/php/extensions/no-debug-non-zts-20131226/oci8.so" 保存退出;

备注:oci8.so的路径是你时间安装的正确路径

9、使用:php -m 命令查看oci8是否安装成功;

10、使用:shutdown -r now 命令重启服务器或者重启你的Apache、nginx服务器也是可以的;

11、重启后使用phpinfo()查看一下php配置中是否有oci8,有的话就是安装成功,没有的话就是安装失败;

php连接oracle的简单步骤介绍

第四步:连接测试

php连接oracle的简单步骤介绍

备注:连接oracle数据库时要注意编码问题哦

如果测试查询数据也是正常的话,那么恭喜您,您php远程连接oracle数据库已经成功了,之后的事情,就看您自己的心情了。要是文章中有什么问题,欢迎各位大神指出、教训,小弟不胜感谢!