服务器环境:ubuntu(其它服务器也可参考) PHP版本:5.6.40(其它版本也可参考)
-
准备安装包
oracle下载这两个(版本可自选择):
官网下载地址:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
instantclient-basic-linux.x64-12.1.0.2.0.zip
instantclient-sdk-linux.x64-12.1.0.2.0.zip
php扩展oci8下载(版本可自选择):
官网下载地址:http://pecl.php.net/package/oci8
oci8-2.0.12.tgz(根据PHP版本找对应的安装包) -
将准备好的安装包上传到服务器
这里上传到目录:/home 下 -
开始安装
##解压安装包
unzip instantclient-basic-linux.x64-12.1.0.2.0.zip
unzip instantclient-sdk-linux.x64-12.1.0.2.0.zip
tar -xvf oci8-2.0.12.tgz
检查:进入解压后的目录 instantclient_12_1 查看sdk 是否存在
##做下软链接
cd instantclient_12_1
ln -s libnnz12.so libnnz.so
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so
##将instantclient_12_1 改名移动到 /usr/local/lib/instantclient (可自行变动目录)
mv ./instantclient_12_1 /usr/local/lib/instantclient
##进入oci8目录
cd oci8-2.0.12
##执行phpize命令,该路径是指php的安装目录中有个phpize,可以通执行find / -name phpize 查找 phpize
/usr/local/php/bin/phpize
## 通过 find / -name php-config 查找位置
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/local/lib/instantclient,12.1
make
make install
修改 php.ini,增加 extension=oci8.so,可以通 find / -name oci8.so 查找,填写绝对路径
最后,重启PHP,查看oci8 的命令 php -m
报错解决方案:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php/20131226/oci8.so’ - libnnz10.so: cannot open shared object file: No such file or directory in Unknown on line 0
##添加 /usr/local/lib/instantclient
vi /etc/ld.so.conf
- 测试连接oracle
<?php
$conn = oci_connect('用户名', '密码', 'IP地址:端口/数据库名');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}else {
echo "连接oracle成功!";
}
?>