![无法加载动态库(pcre、spl、gettaxt、mhash、snmp、sockets、tokenizer)](https://linux22.com/image/568857/%E6%97%A0%E6%B3%95%E5%8A%A0%E8%BD%BD%E5%8A%A8%E6%80%81%E5%BA%93%EF%BC%88pcre%E3%80%81spl%E3%80%81gettaxt%E3%80%81mhash%E3%80%81snmp%E3%80%81sockets%E3%80%81tokenizer%EF%BC%89.png)
我对 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.so
您extensions.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 问题仍然存在,我们可以解决它。