Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку - PullRequest
80 голосов
/ 12 марта 2011

Я запускаю скрипт PHP и получаю эту ошибку:

Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin' - / usr / local / lib / php / extensions / no-debug-non-zts-20090626 / ixed.5.2.lin: невозможно открыть общий объектный файл: такого файла или каталога в «Неизвестно» в строке 0

нет

Что это значит?

Ответы [ 11 ]

47 голосов
/ 12 марта 2011

Это означает, что в одном из ваших файлов конфигурации php есть строка extension=... или zend_extension=... (php.ini или другой, близкий к ней) , который пытается загрузить это расширение: ixed.5.2.lin

К сожалению, этот файл или путь не существует или разрешения неправильные.

  1. Попробуйте поискать в .ini файлах, загруженных PHP (phpinfo() может указать, какие из них) - один из них должен попытаться загрузить это расширение.
  2. Либо исправьте путь к файлу, либо закомментируйте соответствующую строку.
35 голосов
/ 07 марта 2014

Если вы работаете в Linux, вы можете найти все загруженные файлы конфигурации, набрав в командной строке:

php -r "print phpinfo();" | grep ".ini"

UPDATE: Как уже упоминалось в комментариях, это может быть еще точнее:

php -i | grep ini
16 голосов
/ 21 мая 2015

Если вы просто хотите, чтобы ошибка исчезла, и вам не нужно расширение, то обязательно закомментируйте строку в php.ini. Но если вы действительно хотите решить проблему, вот дополнительная информация.

Существуют различные причины для этого, основанные на точном модуле, но есть также некоторые общие рекомендации.

  1. Откройте phpinfo() и найдите extension_dir в разделе Core. Это где ваши модули должны быть расположены.

Например, /usr/lib/php/modules для Unix / Linux.

  1. Если файл на самом деле существует, убедитесь, что разрешения адекватны.
  2. Если файл не существует, используйте ресурсы ниже для его установки.

Установка на * nix (PEAR)
Установка расширений в Windows

9 голосов
/ 25 сентября 2015

phpStom с XAMPP

TL; DR Кроме проверки того, что файлы существуют, вам может понадобиться добавить букву диска в некоторые записи в файле php.ini

У меня внезапно возникла проблема с использованием phpStorm 7 для отладки php с помощью xampp и xdebug.При попытке установить intellij interperter на xampps php, я получил много предупреждений, таких как в вопросе, например:

Невозможно загрузить динамическую библиотеку '/ xampp / php / ext / php_bz2.dll '

Почему-то мне пришлось добавить букву диска в записи extension_dir и browscap в файле php.ini:

extension_dir = "\xampp\php\ext"
browscap = "\xampp\php\extras\browscap.ini"

в

extension_dir = "e:\xampp\php\ext"
browscap = "e:\xampp\php\extras\browscap.ini"
4 голосов
/ 18 июля 2017

php -r "echo php_ini_loaded_file();"

В CLI покажет текущий загруженный INI-файл, найдите там Ваше расширение, путь к нему неверный.

3 голосов
/ 26 апреля 2016

Обратите внимание, что вы также можете получить эту ошибку, если ваша PHP-библиотека не имеет разрешения на открытие других каталогов. В моем конкретном случае я заметил это при использовании php -l для проверки синтаксиса скрипта в моем текстовом редакторе. Это означало, что, поскольку моя учетная запись называлась «volomike», у этой учетной записи не было разрешения на запуск библиотек, на которые опиралась команда php.

Например, в Ubuntu 14.04 я автоматически установил PHP5 в путь /usr/lib/php5/20121212+lfs. Тем не менее, поскольку я работал на C ++ над созданием некоторых общих объектов, я возился с разрешениями на каталоги и облажался так, что учетные записи без полномочий root не имели разрешений на запуск каталога (открытие каталога) для просмотра /usr/lib/php5/20121212+lfs. Итак, я набрал следующую команду, чтобы исправить эту проблему:

sudo chmod o+x /usr/lib/php5/20121212+lfs.

Теперь, когда я выполняю php -l example.php как пользователь без полномочий root, он больше не дает мне этой проблемы «Не удалось загрузить динамическую библиотеку».

2 голосов
/ 16 октября 2018

Загрузка .dll в Linux

Я столкнулся с этим предупреждением, когда пытался установить php-extension через файл php.ini ;

пока я не выяснил, что вы не можете загрузить .dll в Linux,

но вы должны комментировать расширения, которые вы хотите импортировать ;extension= ... .dll и установить его правильно через sudo apt-get install php-...

note : ... - это расширение, которое вы хотите включить.

2 голосов
/ 23 февраля 2016

У меня была такая же проблема на XAMPP для Windows, когда я пытался установить composer. Я сделал php -v и php-ошибка:

Невозможно загрузить динамическую библиотеку '/xampp/php/ext/php_bz2.dll'

Мне потребовалось некоторое время, пока я не понял, что мне нужно настроить свой XAMPP. Поэтому я запускаю setup_xampp.bat и php возвращаюсь к работам как шарм.

1 голос
/ 03 декабря 2018

После Windows 10 XAMPP теперь я установил LAMPP (XAMPP) в Ubuntu.Windows XAMPP было намного меньше для настройки по сравнению с MAC (iOS), но теперь с Linux Ubuntu у меня было еще несколько, так как в Linux больше возможностей (хорошая вещь).

Я запутался и активировал mysqli.dll (и mysql.dll: сотрите "#" в /etc/php/7.2/cli/php.ini

Я начал получать сообщение PHP Warning: PHP Startup: Unable to load dynamic library, относящееся к dll. Я прокомментировалmysql(and i).dll в том же файле, но сообщение не исчезло, пока я не закомментировал "" в /opt/lampp/etc/php.ini.

Похоже, XAMPP читает файл php.ini из /etc/php/7.2/cli и вносит изменения вphp.ini из /opt/lampp/etc. (; Extension = php_pdo_mysql.dll после ";" перезапустил Apache и больше никаких сообщений.

0 голосов
/ 17 октября 2018

Я имел эту ошибку на нескольких модулях, когда на моем сервере параллельно работали разные версии PHP.Чтобы разобраться в этом, мне нужно было установить пакеты, которые он не мог найти для этой конкретной версии PHP.Так, например, если бы я увидел: -

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/xml.so'

, я бы специально установил библиотеку для версии PHP: -

sudo apt-get install php7.1-xml

и затем перезапустил Apache.Исправил это для меня.Вы можете проверить свою версию следующим образом: -

php -v
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...