一、安装oracle-instantclient
下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.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
放在/opt/目录下,执行:
cd /opt
rpm -ivh oracle-instantclient*
此时会生成/usr/lib/oracle/11.2/client64/lib/目录。*注:下载对应数据库版本
(上面路径一定要去看看是否生成了,这很重要,路径名称可能不同,部分机器会生成 /usr/lib/oracle/11.2/client/lib/目录)
二、修改/etc/ld.so.conf配置文件
追加以下内容 -- 上面生成文件的路径,没有64的写client/lib/:
/usr/lib/oracle/11.2/client64/lib/
保存、退出,执行命令 ldconfig
三、安装oci8 如果是php7版本 安装2.1.8
下载最新的oci8组件
下载地址:http://pecl.php.net/package/oci8
下载 oci-2.0.8.tgz
放在/opt目录下,依次执行:
cd /opt
tar -xvzf oci-2.0.8.tgz
cd oci-2.0.8
/usr/local/php/bin/phpize #(用phpize生成configure配置文件,千万注意:phpize、php-config、instantclient目录一定要找对)
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
make && make install
成功后会告诉你oci8.so已经成功放在以下目录(这仅仅是我的目录,你的可能不同);
/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
四、配置PHP支持OCI扩展
修改php配置文件
# vim /usr/local/php/etc/php.ini
在extension项后追加以下内容
extension=oci8.so
五、重启Apache/nginx服务测试
service apache2 restart 【-- apache】
service nginxd reload 【-- nginx】
如果报错:
could find driver
请安装 pdo-oci
/usr/local/php/bin/phpize
./configure --with-pdo-oci=instantclient,/usr/lib/oracle/11.2/client64/lib --with-php-config=/usr/local/php/bin/php-config
如果报错
SQLSTATE[HY000]: OCIEnvNlsCreate: Check the character set is valid and that PHP has access to Oracle libraries and NLS data (/opt/packages/pdo_oci/oci_driver.c:614)
vim /usr/local/php/etc/php-fpm.conf #根据自己的路径来哈
加入
env[LD_LIBRARY_PATH] = /usr/lib/oracle/11.2/client64/lib
env[ORACLE_HOME] = /usr/lib/oracle/11.2/client64/lib
到这里就大功告成了,使用 php -m 查看下是否扩展是否安装成功。