Debian下安装PHP的OCI8扩展 (基于alien、rpm)

Debian/Ubuntu下安装PHP5.x的OCI8扩展 (基于alien、rpm)

##编译安装

安装php下编译相关工具

1
2
sudo apt-get update
sudo apt-get install -y php5-cli php5-dev unzip libaio-dev php-pear make build-essential alien

下载oci8相关包

访问下载页面

下载:

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

使用alien把rpm包转为deb包

注意直接alien -i 安装会导致无法安装成功

1
alien -d oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
1
alien -d oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
1
alien -d oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

安装rpm转换完的deb包

1
dpkg -i oracle-instantclient12.1-basic_12.1.0.2.0-2_amd64.deb
1
dpkg -i oracle-instantclient12.1-devel_12.1.0.2.0-2_amd64.deb
1
dpkg -i oracle-instantclient12.1-sqlplus_12.1.0.2.0-2_amd64.deb

pecl进行oci8安装

1
2
3
4
5
6
7
8
pecl install oci8 
#鉴于目前pecl不支持7.0以下版本的OCI8安装,可采用下列方式
wget http://pecl.php.net/get/oci8-2.0.10.tgz # 5.0~5.6版本建议安装oci8-2.0.10
tar -xf oci8-2.0.10.tgz
cd oci8-2.0.10
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client64/lib #oracle install lib dir
make && make install

增加模块配置

1
echo 'extension=oci8.so' > /etc/php5/mods-available/oci8.ini

开启模块

1
php5enmod oci8

进行模块安装判断

1
php -m | grep oci8

如果显示oci8, 则表示安装成功

##oci8.so复制安装

需要注意,此安装方法安装的oci8.so当时编译版本需要和当前环境下的php版本一致。就是说,不能用5.4版本编译的oci8.so到5.5版本的php中使用。