pdo_odbc.so中的pdo_parse_params错误每当PHP在Fedora 20中启动时
当我试图通过命令行启动PHP时,出现以下错误:pdo_odbc.so中的pdo_parse_params错误每当PHP在Fedora 20中启动时,php,pdo,odbc,fedora,Php,Pdo,Odbc,Fedora,当我试图通过命令行启动PHP时,出现以下错误: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_odbc.so' - /usr/lib64/php/modules/pdo_odbc.so: undefined symbol: pdo_parse_params in Unknown on line 0 以下是我安装的PHP软件包: php.x86_64
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_odbc.so' - /usr/lib64/php/modules/pdo_odbc.so: undefined symbol: pdo_parse_params in Unknown on line 0
以下是我安装的PHP软件包:
php.x86_64 5.5.7-1.fc20 @updates
php-ZendFramework.noarch 1.12.3-3.fc20 @updates
php-bcmath.x86_64 5.5.7-1.fc20 @updates
php-cli.x86_64 5.5.7-1.fc20 @updates
php-common.x86_64 5.5.7-1.fc20 @updates
php-devel.x86_64 5.5.7-1.fc20 @updates
php-gd.x86_64 5.5.7-1.fc20 @updates
php-mcrypt.x86_64 5.5.7-1.fc20 @updates
php-mssql.x86_64 5.5.7-1.fc20 @updates
php-odbc.x86_64 5.5.7-1.fc20 @updates
php-pdo.x86_64 5.5.7-1.fc20 @updates
php-pear.noarch 1:1.9.4-23.fc20 @fedora
php-pecl-jsonc.x86_64 1.3.3-1.fc20 @updates
php-pecl-jsonc-devel.x86_64 1.3.3-1.fc20 @updates
php-process.x86_64 5.5.7-1.fc20 @updates
php-xml.x86_64 5.5.7-1.fc20 @updates
我在/etc/php.ini
文件中定义了extension=pdo_odbc.so
和extension=oci8.so
。/etc/php.d
目录中还有许多.ini文件,用于加载大多数其他扩展名。以下.so文件位于/usr/lib64/php/modules
目录中:
-rwxr-xr-x. 1 root root 32560 Dec 10 23:51 bcmath.so
-rwxr-xr-x. 1 root root 24696 Dec 10 23:51 bz2.so
-rwxr-xr-x. 1 root root 33752 Dec 10 23:51 calendar.so
-rwxr-xr-x. 1 root root 15568 Dec 10 23:51 ctype.so
-rwxr-xr-x. 1 root root 86912 Dec 10 23:51 curl.so
-rwxr-xr-x. 1 root root 180608 Dec 10 23:51 dom.so
-rwxr-xr-x. 1 root root 65496 Dec 10 23:51 exif.so
-rwxr-xr-x. 1 root root 2713328 Dec 10 23:51 fileinfo.so
-rwxr-xr-x. 1 root root 53624 Dec 10 23:51 ftp.so
-rwxr-xr-x. 1 root root 120904 Dec 10 23:51 gd.so
-rwxr-xr-x. 1 root root 15640 Dec 10 23:51 gettext.so
-rwxr-xr-x. 1 root root 45080 Dec 10 23:51 iconv.so
-rwxr-xr-x. 1 root root 40840 Dec 12 09:13 json.so
-rwxr-xr-x. 1 root root 45256 Dec 10 23:51 mcrypt.so
-rwxr-xr-x. 1 root root 53816 Dec 10 23:51 mssql.so
-rwxr-xr-x. 1 root root 560751 Jan 10 10:20 oci8.so
-rwxr-xr-x. 1 root root 70312 Dec 10 23:51 odbc.so
-rwxr-xr-x. 1 root root 25008 Dec 10 23:51 pdo_dblib.so
-rwxr-xr-x. 1 root root 28856 Dec 10 23:51 pdo_odbc.so
-rwxr-xr-x. 1 root root 116240 Dec 10 23:51 pdo.so
-rwxr-xr-x. 1 root root 29168 Dec 10 23:51 pdo_sqlite.so
-rwxr-xr-x. 1 root root 272000 Dec 10 23:51 phar.so
-rwxr-xr-x. 1 root root 32880 Dec 10 23:51 posix.so
-rwxr-xr-x. 1 root root 15624 Dec 10 23:51 shmop.so
-rwxr-xr-x. 1 root root 54176 Dec 10 23:51 simplexml.so
-rwxr-xr-x. 1 root root 91368 Dec 10 23:51 sockets.so
-rwxr-xr-x. 1 root root 51336 Dec 10 23:51 sqlite3.so
-rwxr-xr-x. 1 root root 19880 Dec 10 23:51 sysvmsg.so
-rwxr-xr-x. 1 root root 11496 Dec 10 23:51 sysvsem.so
-rwxr-xr-x. 1 root root 15720 Dec 10 23:51 sysvshm.so
-rwxr-xr-x. 1 root root 19712 Dec 10 23:51 tokenizer.so
-rwxr-xr-x. 1 root root 36720 Dec 10 23:51 wddx.so
-rwxr-xr-x. 1 root root 32888 Dec 10 23:51 xmlreader.so
-rwxr-xr-x. 1 root root 54072 Dec 10 23:51 xml.so
-rwxr-xr-x. 1 root root 49152 Dec 10 23:51 xmlwriter.so
-rwxr-xr-x. 1 root root 37104 Dec 10 23:51 xsl.so
可以找到运行phpinfo()时的输出
pdo_odbc.ini
at/etc/php.d的内容:
; Enable pdo_odbc extension module
extension=pdo_odbc.so
readelf-Ws-pdo_odbc.so的输出:
Symbol table '.dynsym' contains 83 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000001ac0 0 SECTION LOCAL DEFAULT 9
2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND convert_to_long
3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND pdo_parse_params
4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_pdo_unregister_driver
5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.2.5 (2)
6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strcasecmp@GLIBC_2.2.5 (2)
7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable
8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLParamData
9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND cfg_get_string
10: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLRowCount
11: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _estrdup
12: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.2.5 (2)
13: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLFreeHandle
14: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLFetchScroll
15: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@GLIBC_2.4 (3)
16: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _zval_dtor_func
17: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLDriverConnect
18: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLPutData
19: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND zend_fetch_resource
20: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strchr@GLIBC_2.2.5 (2)
21: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_info_print_table_row
22: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _php_stream_stat
23: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLGetDiagRec
24: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLDescribeCol
25: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _erealloc
26: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_pdo_get_exception
27: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND zend_hash_index_find
28: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND zend_declare_class_constant_long
29: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
30: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLCloseCursor
31: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLSetEnvAttr
32: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_error_docref0
33: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_info_print_table_end
34: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _safe_malloc
35: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.14 (4)
36: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLConnect
37: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND zend_throw_exception_ex
38: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_file_le_stream
39: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLDescribeParam
40: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_info_print_table_header
41: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_pdo_register_driver
42: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLColAttribute
43: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_pdo_get_dbh_ce
44: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLPrepare
45: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _ecalloc
46: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLSetConnectAttr
47: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __strcpy_chk@GLIBC_2.3.4 (5)
48: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _convert_to_string
49: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLExecute
50: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _efree
51: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLExecDirect
52: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND zval_is_true
53: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLSetCursorName
54: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLDisconnect
55: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
56: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _php_stream_read
57: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND add_next_index_string
58: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _estrndup
59: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLEndTran
60: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _emalloc
61: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLNumResultCols
62: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLGetData
63: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_file_le_pstream
64: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _zval_copy_ctor_func
65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable
66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLBindParameter
67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLGetCursorName
68: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND add_next_index_long
69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLSetStmtAttr
70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLAllocHandle
71: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND php_info_print_table_start
72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLBindCol
73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.2.5 (2)
74: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND spprintf
75: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strstr@GLIBC_2.2.5 (2)
76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND SQLMoreResults
77: 0000000000206438 0 NOTYPE GLOBAL DEFAULT 23 _edata
78: 0000000000206440 0 NOTYPE GLOBAL DEFAULT 24 _end
79: 0000000000002310 8 FUNC GLOBAL DEFAULT 11 get_module
80: 0000000000206438 0 NOTYPE GLOBAL DEFAULT 24 __bss_start
81: 0000000000001ac0 0 FUNC GLOBAL DEFAULT 9 _init
82: 00000000000045a4 0 FUNC GLOBAL DEFAULT 12 _fini
从。它适用于不同的驱动程序,但它是相同的错误,因此可能是相同的解决方案
It is necessary to create a separate .ini file for CUBRID PDO driver like /etc/php5/cli/conf.d/pdo_cubrid.ini [...]
从php.ini中,我看到您有一个pdo_odbc.ini:
/etc/php.d/pdo_odbc.ini, // which is not the same place
如果将该pdo_odbc.ini文件复制到特定的php版本conf文件(可能类似于/etc/php5/conf.d
),则可能排除该问题。由此:未定义符号:pdo_parse_params in Unknown on line 0
我得到的印象是它没有正确加载脚本,没有显示名称,甚至没有显示有效的行号解决我的问题的方法是删除扩展名=pdo_odbc。因此/etc/php.ini
中的
pdo_odbc.so
扩展名被导入到/etc/php.d/pdo_odbc.ini
文件中,该文件中还包含extension=pdo_odbc.so
您能详细说明什么是“特定php版本配置”文件,以及在哪里可以找到它们吗?如果我在运行php
时发布strace输出,会有帮助吗?这可能会告诉您在哪里找不到您所引用的文件/脚本。嗯,我想看看pdo_odbc.so的内容,以及当前的pdo_odbc.ini,位于/etc/php.d/pdo_odbc.ini
。运行ee pdo_odbc.so
可能会以可读格式打开它。应该在某个地方调用pdo_odbc.ini。该调用可能是对错误路径的调用。我在查找ee
*时遇到问题。抱歉,ee是用于其他环境的,在fedora上阅读时,您必须使用emacs pdo_odbc.ini
。哦但事实上,它可能没有安装,我认为它默认与fedora一起安装,但我无法验证这一点。不用麻烦了,只要.ini文件就可以了。在我的情况下,我必须自己添加/etc/php.d/pdo_odbc.ini
,而不是把它放在/etc/php.ini
中。我为MSSQL安装了odbc 13,但我找不到扩展名pdo_odbc。所以在/usr/lib64/php/modules
中,我也找不到/etc/php.d/pdo_odbc.ini
文件。我们是否需要手动将.so
文件从其他路径复制到/usr/lib64/php/modules
,然后创建pdo_odbc.ini
文件?如果有人出现此错误,同样的原则+同样的修复可能适用:php启动:无法加载动态库“pdo_pgsql”
。pgsql可能已经由pgsql.ini在/etc/php*树结构中加载。可能与以下内容有关: