加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Php pdo_dblib – 找不到/无法加载freetds

发布时间:2020-12-13 13:56:50 所属栏目:PHP教程 来源:网络整理
导读:自托管盒子, RHEL 6 PHP 5.3.3 已安装PDO freetds安装 pdo_dblib – 到目前为止没有运气安装 我的目标是将PDO与sybase一起使用.尝试从相应的版本php源代码安装pdo_dblib.我尝试了各种方法,并在这个主题上寻求了很多帮助,但还没有成功. 方法1 安装freetds $./
自托管盒子,
RHEL 6
PHP 5.3.3

已安装PDO
freetds安装
pdo_dblib – 到目前为止没有运气安装

我的目标是将PDO与sybase一起使用.尝试从相应的版本php源代码安装pdo_dblib.我尝试了各种方法,并在这个主题上寻求了很多帮助,但还没有成功.

方法1

安装freetds

$./configure
$make
$su root
Password: 
$make install

这很成功

安装pdo_dblib

在/ ext / pdo_dblib文件夹中:

$phpize
$./configure
$make
$make test

错误输出:

PHP Warning:  PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0

这看起来不太好……我研究了这个,发现了一个有趣的黑客,这个here.但是将pdo.ini改为pdo_0.ini不是解决方案,因为我在make测试中仍然遇到相同的错误.

$su
$make install

输出:

Installing shared extensions:     /usr/lib64/php/modules/

这看起来很奇怪……不,它实际上并没有安装(在apache重启后没有出现在phpinfo上).

方法2

安装freetds

完全按照说明,我添加前缀

$./configure --prefix=/usr/local/freetds
$make
$su root
Password: 
$make install

这很成功

安装pdo_dblib

在/ ext / pdo_dblib文件夹中:

$phpize
$./configure --with-sybase=/usr/local/freetds

这会在输出的底部产生以下错误

...
checking for PDO_DBLIB support via FreeTDS... yes,shared
configure: error: Cannot find FreeTDS in known installation directories

方法3

freetds ./configure变体(包括或不包括–prefix …)没有改变这个结果,所以我会跳过它.

安装pdo_dblib pecl扩展

遵循here指定的方法.

pecl download pdo_dblib
tar -xzvf PDO_DBLIB-1.0.tgz

删除了线,

<dep type=”ext” rel=”ge” version=”1.0″>pdo</dep>

保存package.xml文件,并将其移入PDO_DBLIB目录.

mv package.xml ./PDO_DBLIB-1.0

导航到PDO_DBLIB目录,然后从中安装包
目录.

cd ./PDO_DBLIB-1.0
pecl install package.xml

但是,此命令为我提供了以下错误输出,与方法2相同.

checking for PDO_DBLIB support via FreeTDS... yes,shared
configure: error: Cannot find FreeTDS in known installation directories
ERROR: `/home/sybase/Install_items/pecl_pdo_dblib/PDO_DBLIB-1.0/configure' failed
在方法1之后,检查ini文件并确保将pdo.so和pdo_dblib.so文件配置为加载.您可以使用php -i从命令行执行此操作,并查找“已加载的配置文件”以及“已解析的其他.ini文件”.

在这些文件中,确保加载extendion = pdo.so(可能/可能在加载pdo_dblib.so之前).如果要维护单独的.ini文件,可以通过直接ls -al命令文件来控制加载顺序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读