Ubuntu14.04安装Oracle Instant Client + PHP5.6编译安装oci8扩展

1、Ubuntu14.04安装Oracle Instant Client 

1.1安装环境

本文介绍在ubuntu14.04系统(X64)上安装Oracle Instant Client,安装版本为11.2.0.4.0(读者需要按照自己安装版本修改相应的版本号)

1.2安装RPM文件

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
  • 使用alien转换PRM文件到DEB文件并安装(sudo apt-get install alien)

  • 安装alien后,执行下面的命令安装Oracle客户端

sudo alien -i oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
sudo alien -i oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
sudo alien -i oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

1.3配置Oracle环境

  • 安装以下步骤新增tnsnames.ora文件:

cd /usr/lib/oracle/11.2/client64
sudo mkdir -p network/admin
sudo vi tnsnames.ora
  • 填写如下内容,或者直接从oracle服务器端将相同目录下的这个文件拷贝过来。

# tnsnames.ora Network Configuration File
ZBUDCDB_STDBY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.126.174)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = zbudcdb_stdby)
    )
  )
  • 链接Oracle的库文件到Oracle目录:

sudo ln -s /usr/include/oracle/11.2/client64 /usr/lib/oracle/11.2/client64/include

1.4配置环境变量

在登录用户的profile中增加以下内容:

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG="AMERICAN_AMERICA.UTF8"
测试:
sqlplus 'name/[email protected]:1521/ZBUDCDB_STDBY'

如果报错:sqlplus: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory,运行以下命令安装libaiosudo apt-get install libaio1 libaio-dev

2、PHP5.6编译安装oci8拓展

准备oci8源码 oci.zip、安装php5.6


2.1 安装编译工具(phpize)

sudo apt install php5.6-dev

2.2 在ubuntu中创建源文件目录,解压源码

mkdir oci8
mv oci8.zip oci8
cd oci8
unzip oci8.zip

2.3编译安装oci8

phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib --with-php-config=/usr/bin/php-config

make
make test   #这边我出现了很多fail和bug,我没有管它继续安装了,最后oci8还是成功安装了
make install

2.4重启php和nginx服务

sudo service php5.6-fpm restart
sudo service nginx restart

2.5查看phpinfo中是否有oci8扩展

2.6 php测试代码

        $connection = oci_connect(self::ORACLE_DB_USER,self::ORACLE_DB_PWD,self::ORACLE_DB_CONNECT_STR,self::ORACLE_DB_CHARSER);
        
        if(!$connection){
            return genInfoTip(CODE_FAIL, '数据库连接失败');
        }
        $handel_remain = oci_parse($connection,$sql);  //编译sql语句
        oci_execute($handel_remain,OCI_DEFAULT);  //执行
        $info = array();
        while ($row = oci_fetch_array($handel_remain,OCI_ASSOC+OCI_RETURN_NULLS)) {
            $info[] = $row;
        }
        ocilogoff($connection);
        if (empty($info)) {
            return genInfoTip(CODE_FAIL, '未找到记录['.$sql.']');
        }
        return genInfoTip(CODE_OK, $info);
发布了44 篇原创文章 · 获赞 28 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/hanzengyi/article/details/70849091