1

我已经在我的 linux 机器上安装了 xampp。我想为 php 添加 oci8 oracle 11g 扩展。我所做的:

[root@cpcolvir bin]# /opt/lampp/lampp oci8
Please enter the path to your Oracle or Instant Client installation:
[/opt/oracle] /usr/lib/oracle/11.2/client64/lib/

但这给了我错误:

Can't find libclntsh.so. Sorry.

但我确信libclntsh.so位于/usr/lib/oracle/11.2/client64/lib/中。我做错了什么?

4

3 回答 3

2

我刚刚安装了 Oracle Instant Client 11.2、Ubuntu 12.04 和 xampp 1.7.x。尝试以下步骤

  1. 从 Oracle 下载 instantclient-basic-linux-11.2.0.4.0.zip 和 instantclient-sdk-linux-11.2.0.4.0.zip

  2. 将其解压缩到同一文件夹并将其移动到 /opt/oracle_instantclient

  3. 将以下设置附加到 /etc/environment 的末尾

    $sudo vi /etc/环境

    ...

    LD_LIBRARY_PATH="/opt/oracle_instantclient"

    TNS_ADMIN="/opt/oracle_instantclient"

    ORACLE_BASE="/opt/oracle_instantclient"

    ORACLE_HOME=$ORACLE_BASE

  4. 构建 oci8.so(这应该没有错误地完成)

    $sudo pecl 安装 oci8

    配置时会提示输入,输入如下

    即时客户端,/opt/oracle_instantclient

  5. 将以下行添加到 /opt/lampp/etc/php.ini

    扩展=oci8.so

  6. 创建以下链接以避免启动 apache 错误

    $sudo ln -s /opt/oracle_instantclient/libclntsh.so.11.1 /opt/oracle_instantclient/libclntsh.so

    $sudo ln -s /opt/oracle_instantclient/libclntsh.so.11.1 /opt/oracle_instantclient/libclntsh.so.10.1

  7. 重启你的lampp服务器

    $sudo /opt/lampp/lampp 重启

于 2014-01-24T10:50:00.260 回答
2

安装 oracle instantclient 后,您应该设置库路径并让最后一个反斜杠消失

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH

并重新安装oci8

pecl install oci8

通过添加进一步编辑您的 php.ini (my is at /etc/php5/apache2/php.ini)

extension=oci8.so

并重新启动apache

于 2013-03-25T15:49:11.430 回答
2

我面临同样的问题并进行了一些追踪。当我查看这个文件时,我们执行“./lampp oci8”时的脚本文件;

/opt/lampp_181/share/lampp/oci8install

我发现它实际上不是在寻找“libclntsh.so”,而是在寻找“libclntsh.so.10*”

libclntsh=`find $ora_home -name "libclntsh.so.10*" | head -1`

尝试如下创建软链接“libclntsh.so.10.1 -> libclntsh.so”和“libclntsh.so -> libclntsh.so.11.1”;

lrwxrwxrwx 1 oracle dba       69 2013-12-24 10:46 libclntsh.so -> /home/oracle/app/oracle/product/11.2.0/client_2/lib/libclntsh.so.11.1*
lrwxrwxrwx 1 oracle dba       64 2013-12-24 10:46 libclntsh.so.10.1 -> /home/oracle/app/oracle/product/11.2.0/client_2/lib/libclntsh.so*
-rwxr-xr-x 1 oracle dba 39997991 2013-12-24 10:46 libclntsh.so.11.1*

以前从未尝试过,但我在完整的 Oracle Client lib 目录中看到了这一点。可以肯定的是,当我将 oci8 指向该位置时,我的 XAMPP 运行良好。

Oracle 运行时客户端库版本 11.2.0.1.0

我的 phpinfo() 输出

于 2013-12-24T08:53:08.427 回答