Подтвердить что ты не робот

PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку

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

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: не удается открыть файл общих объектов: нет такого файла или каталога в Unknown в строке 0

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

php -i | grep ini

Ответ 3

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

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

  • Откройте phpinfo() и найдите extension_dir в разделе Core. Здесь должны находиться ваши модули.

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

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

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

Ответ 4

phpStom с XAMPP

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

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

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

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

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

to

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

Ответ 5

php -r "echo php_ini_loaded_file();"

Будет отображаться в текущем загруженном файле CLI, искать там для вашего расширения, путь к нему неверен.

Ответ 6

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

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

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

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

Ответ 7

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

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

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

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

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

Ответ 8

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

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

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

Ответ 9

После 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 пока я не прокомментировал "" в /opt/lampp/etc/php.ini.

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

Ответ 10

Я столкнулся с подобной ошибкой. Ошибка, которую я сделал, заключалась в том, чтобы использовать имя "контроллер" как "Страницы" вместо "страниц" в моем URL-адресе.

Ответ 11

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

Ответ 12

В Windows это может быть неправильный путь в "Системных переменных среды". "Путь" к каталогу php.exe должен быть хорошим.