Я запускаю скрипт 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
Что это значит?
Это означает, что в одном из ваших конфигурационных файлов php (php.ini или другом рядом с ним) есть extension=...
или zend_extension=...
, которое пытается загрузить это расширение: ixed.5.2.lin
К сожалению, этот файл или путь не существует или разрешения неверны.
.ini
, загружаемых PHP ( phpinfo()
может указать, какие из них) – один из них должен попытаться загрузить это расширение. Если вы находитесь в Linux, вы можете найти все загруженные файлы конфигурации, введя это в оболочке:
php -r "print phpinfo();" | grep ".ini"
ОБНОВЛЕНИЕ: Как уже упоминалось в комментариях, это может быть еще более точным:
php -i | grep ini
Если вы просто хотите, чтобы ошибка исчезла, и вам не требуется расширение, то непременно прокомментируйте строку в php.ini
. Но если вы действительно хотите исправить проблему, вот дополнительная информация.
Для этого существуют различные причины, основанные на точном модуле, но есть и некоторые общие рекомендации.
phpinfo()
и найдите extension_dir
в разделе Core
. Здесь должны располагаться ваши модули. Например,
/usr/lib/php/modules
для Unix / Linux.
Установка на * 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-адресе.