Microsoft ODBC驱动程序与libodbc.so.2安装php-ldap冲突


Microsoft ODBC driver conflict with libodbc.so.2 installing php-ldap

我在Centos下安装了Microsoft ODBC驱动程序,按照说明可以很好地使用UnixODBC 2.3.0。我正在尝试安装php-ldap,它会升级我的php,这很好,只是它在依赖项上失败了,该依赖项是:

php-odbc-5.4.18-1.el6.remi.x86_64 需要libodbc.so.2()(64位)

我记得这个文件遇到了问题,我不得不将它热链接到libodbc.so.1以使php-pdo正常工作。现在,对于PHP的升级,它正在寻找那个文件,我想我可能安装了32位而不是64位。我试着复制2.3.1版本并使用标准2.2.4,但似乎什么都不起作用。

它住在

/usr/lib64/libodbc.so.2

我觉得如果我在那里得到了错误的驱动程序,PHP-PDO/MS ODBC将停止工作,这样PHP-ldap就可以工作了。我目前的PHP版本是5.4.16,我宁愿只得到phpldap,但所有的链接似乎都死了——我只想通过RPM安装它。现在我正在使用remi-repo来获得最新的PHP版本,并且希望有一个没有libodbc导致问题的升级路径。

文件上的ldd:

linux-vdso.so.1 =>  (0x00007fff25fce000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5754ac9000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f57548ac000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5754518000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5754f41000)

/etc/odbcinst.ini中查找需要更改的驱动程序路径例如(FreeTDS)

[FreeTDS]
Description=FreeTDS v0.91
Driver=/usr/lib64/libtdsodbc.so
...

我所做的是通过强制RPM手动安装php_pdo。它起作用了,所以我不知道真正的问题是什么…这是一个很难用微软驱动程序执行的安装&linux。