Php pdo_dblib – 找不到/无法加载freetds
自托管盒子,
RHEL 6 PHP 5.3.3 已安装PDO 我的目标是将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命令文件来控制加载顺序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |