Назад | Перейти на главную страницу

Невозможно загрузить динамические библиотеки (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 в качестве базы данных, но я не уверен, связано ли это с указанной выше проблемой.

Похоже, либо эти файлы расширений отсутствуют, либо они не могут быть прочитаны пользователем, выполняющим PHP (неправильные разрешения или права собственности), либо ваш extensions.ini необходимо обновить, чтобы соответствовать установленным вами модулям. К сожалению, все режимы отказа вызывают одну и ту же ошибку.

Если они просто отсутствуют, их необходимо переустановить. Я рекомендую использовать php5-extensions мета-порт, но вы также можете установить их по одному, используя:

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 останется, мы сможем ее решить.