Intereting Posts

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

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

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

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

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

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

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

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

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

ОБНОВЛЕНИЕ: Как уже упоминалось в комментариях, это может быть еще более точным:

 php -i | grep ini 

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

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

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

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

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

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

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" 

в

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

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

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

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

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

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

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

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

php -r "echo php_ini_loaded_file();"

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

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