无法加载动态库(pcre、spl、gettaxt、mhash、snmp、sockets、tokenizer)

无法加载动态库(pcre、spl、gettaxt、mhash、snmp、sockets、tokenizer)

我对 freeBSD 还不太熟悉,正在尝试建立一个网络服务器。

我已成功安装 phpmyadmin,phpinfo(); 运行正常。但当我输入“php -v”时,出现一些警告:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/pcre.so' - Cannot open "/usr/local/lib/php/20090626/pcre.so" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/spl.so' - Cannot open "/usr/local/lib/php/20090626/spl.so" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/gettext.so' - Cannot open "/usr/local/lib/php/20090626/gettext.so" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/mhash.so' - Cannot open "/usr/local/lib/php/20090626/mhash.so" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/snmp.so' - Cannot open "/usr/local/lib/php/20090626/snmp.so" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/sockets.so' - Cannot open "/usr/local/lib/php/20090626/sockets.so" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/tokenizer.so' - Cannot open "/usr/local/lib/php/20090626/tokenizer.so" in Unknown on line 0
PHP 5.3.8 with Suhosin-Patch (cli) (built: Dec  1 2011 14:19:00) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

另外,当我尝试安装 drupal 时,我无法选择 mysql 作为数据库,但我不确定这是否与上述问题有关。

答案1

听起来要么是这些扩展文件丢失了,要么是执行 PHP 的用户无法读取它们(权限或所有权错误),要么是您extensions.ini需要更新以匹配您安装的模块。不幸的是,所有故障模式都会产生相同的错误。

如果只是缺少它们,则需要重新安装它们。我建议使用 meta php5-extensions-port,但您也可以使用以下命令逐个安装它们:

portinstall -Rc php5-gettext [etc.]

我看到列出的其中一个是pcre.so。我相信 PCRE 现在默认包含在 PHP 5.3.x 中。此安装是从旧版本的 PHP 升级而来的吗?如果是这样,我认为pcre.soextensions.ini可以注释掉其中的行。

例如,我的一个测试系统目前包含:

$ php -v
PHP 5.3.3 with Suhosin-Patch (cli) (built: Nov 13 2010 19:28:38)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

$ cat /usr/local/etc/php/extensions.ini
extension=filter.so
extension=session.so
extension=mbstring.so
extension=xmlwriter.so
extension=sqlite.so
extension=posix.so
extension=dom.so
extension=xmlreader.so
extension=mcrypt.so
extension=simplexml.so
extension=exif.so
extension=zlib.so
extension=tokenizer.so
extension=json.so
extension=gd.so
extension=iconv.so
extension=gettext.so
extension=readline.so
extension=xml.so
extension=bz2.so
extension=mysqli.so
extension=hash.so
extension=mysql.so
extension=ctype.so
extension=pdo.so
extension=pdo_sqlite.so
extension=pdo_mysql.so
extension=openssl.so
extension=pdf.so

...目录包含:

$ ls -lA /usr/local/lib/php/20090626/ 
total 4672
-r--r--r--  1 root  wheel    33066 Nov 13  2010 bz2.so
-r--r--r--  1 root  wheel    20401 Nov 13  2010 ctype.so
-r--r--r--  1 root  wheel   231335 Nov 13  2010 dom.so
-r--r--r--  1 root  wheel    66043 Nov 13  2010 exif.so
-r--r--r--  1 root  wheel    48992 Nov 13  2010 filter.so
-r--r--r--  1 root  wheel   370277 Nov 13  2010 gd.so
-r--r--r--  1 root  wheel    16993 Nov 13  2010 gettext.so
-r--r--r--  1 root  wheel   170710 Nov 13  2010 hash.so
-r--r--r--  1 root  wheel    46473 Nov 13  2010 iconv.so
-r--r--r--  1 root  wheel    39465 Nov 13  2010 json.so
-r--r--r--  1 root  wheel  1972043 Nov 13  2010 mbstring.so
-r--r--r--  1 root  wheel    55648 Nov 13  2010 mcrypt.so
-r--r--r--  1 root  wheel    68010 Nov 13  2010 mysql.so
-r--r--r--  1 root  wheel   165450 Nov 13  2010 mysqli.so
-r--r--r--  1 root  wheel   144290 Jan 30  2011 openssl.so
-r--r--r--  1 root  wheel   180661 Jun 16 20:40 pdf.so
-r--r--r--  1 root  wheel   116922 Nov 13  2010 pdo.so
-r--r--r--  1 root  wheel    38100 Nov 13  2010 pdo_mysql.so
-r--r--r--  1 root  wheel    33347 Nov 13  2010 pdo_sqlite.so
-r--r--r--  1 root  wheel    40794 Nov 13  2010 posix.so
-r--r--r--  1 root  wheel    27386 Nov 13  2010 readline.so
-r--r--r--  1 root  wheel    74152 Nov 13  2010 session.so
-r--r--r--  1 root  wheel    58057 Nov 13  2010 simplexml.so
-r--r--r--  1 root  wheel   405571 Nov 13  2010 sqlite.so
-r--r--r--  1 root  wheel    19723 Nov 13  2010 tokenizer.so
-r--r--r--  1 root  wheel    63158 Nov 13  2010 xml.so
-r--r--r--  1 root  wheel    44015 Nov 13  2010 xmlreader.so
-r--r--r--  1 root  wheel    59210 Nov 13  2010 xmlwriter.so
-r--r--r--  1 root  wheel    45523 Nov 13  2010 zlib.so

请注意,所有文件都存在且可供所有人读取,而该文件pcre.so并不存在。

最后,请注意,我依稀记得顺序很extensions.ini重要,因为以错误的顺序加载它们可能会导致模块加载失败。虽然您的症状目前似乎没有表明这是一个问题,但您应该小心不要不必要地重新排列这些行extensions.ini

如果您发布文件内容extensions.ini和扩展目录的长列表 ( ls -la),我可能会提供进一步的帮助。我建议对您的扩展进行整理,然后如果您的 MySQL 问题仍然存在,我们可以解决它。

相关内容