linux centos7 安装 oci8 和 pdo_oci 扩展
一, 基本环境
- ,centos7_64+Apache/2.4.7+PHP5.3.27;
- ,oracle11.2(远程)
3, 设置 oracle11.2 运行远程访问 (属于 oracle 设置的范畴)
4, 设置防火墙运行方位
5, 以下步骤以 root 身份执行
二, 安装 oci8 扩展
1, 到 oracle 官网下载:
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(注: 根据操作系统和数据库版本选择不同的版本)
2, 安装以上两个 rpm 包
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
以上的安装路径为:
/usr/lib/oracle/11.2/client64/lib 和 / usr/include/oracle/11.2/client64.
还可能用到以下几条命令:
rpm -qpl 可以查看 rpm 包会在哪些路径安装文件
rpm -qa | grep oracle // 查看 oracle 是否安装
- rpm -qa // 查看所有已安装的人 rpm 包
- rpm -e oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm // 卸载已安装的 rpm 包
- rpm -ivh --force oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm // 强制安装 rpm 包
3, 到 php 官网下载 oci8-2.0.8.tgz(不能使用高版本, 否则以下可能会报错) 并解压为 oci8-2.0.8 文件夹
4, 在 oci8-2.0.8 文件夹中执行
- # phpize(此处为 phpize 命令的全路径)
- # ./configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib ----with-php-config=php-config(此处为 php-config 命令的完整路径)
- # make && make install
执行成功后, 界面会输出 oci8.so 的完整路径
5, 在 php.ini 文件中添加
extension=oci8.so(此处应填写 oci8.so 的完整路径, 此路径在上条命令中输出)
6, 重启 apache
httpd -k restart(此处为 httpd 的全路径)
三, 安装 pdo_oci 扩展
先执行上述 1,2 步骤;
3, 执行 #vi /etc/ld.so.conf
/usr/lib/oracle/11.2/client64/lib$/ 加入此行, 保存退出
4, 执行
ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client
ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
64 位系统需要创建 32 位的软链接 (这里可能是一个遗留 bug)
5, 执行 vi etc/profile
加入以下几行
- export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
- export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH
- export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
6, 执行
#source /etc/profile
7, 执行
ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1
ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1
注: 防止 pdo_oci 对 oracle11 支持不足
8, 官网下载 php-5.3.27.tar.gz, 解压后将其中的 pdo_oci 文件夹复制到 php 的扩展目录中 (如主目录 / ext/pdo 中)
9, 在 "主目录 / ext/pdo" 中执行:
- # phpize(此处为 phpize 命令的全路径)
- # ./configure --with-pdo-oci=instantclient,/usr,11.2 --with-php-config=php-config(此处为 php-config 命令的完整路径)
- # make && make install
执行成功后, 界面会输出 pdo_oci.so 的完整路径
10, 在 php.ini 文件中添加
extension=pdo_oci.so(此处应填写 pdo_oci.so 的完整路径, 此路径在上条命令中输出)
11, 重启 apache
httpd -k restart(此处为 httpd 的全路径)
四, 测试是否安装成功
1, 执行./php -i |grep oci(此处为 php 命令的全路径), 输出如下证明成功:
oci8
......
PDO drivers => mysql, sqlite, sqlite2, oci
2, 也可以使用 php 脚本测试
测试 pdo_oci:$pdo= new PDO('oci:dbname=//oracle 的 ip 地址: 1521 / 数据库名; charset=utf8', 用户名, 密码);
测试 oci8:$conn = oci_connect(用户名, 密码, oracle 的 ip 地址: 1521 / 数据库名);
来源: http://www.bubuko.com/infodetail-2558095.html