Я запускаю 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
Что это значит?
php
dynamic-library
Пополо
источник
источник
Если вы работаете в Linux, вы можете найти все загруженные файлы конфигурации, набрав это в оболочке:
php -r "print phpinfo();" | grep ".ini"
ОБНОВЛЕНИЕ: как упоминалось в комментариях, это может быть еще точнее:
источник
php -i | grep ini
тоже должно работать нормально (нет необходимости печатать phpinfo, если у вас есть аргумент команды для этого)phpinfo()
не перечислил проблемные ini-файлы.php -i | grep ini
как предложил YorickH, работал у меня. Здесь будут перечислены библиотеки, загруженные для CLI, и, как оказалось, ini-файл, вызвавший предупреждение, в моем случае находился в каталоге CLI.php --ini
чтобы перечислить все ini файлыЕсли вы просто хотите, чтобы ошибка исчезла, и вам не нужно расширение, то обязательно закомментируйте строку в
php.ini
. Но если вы действительно хотите решить проблему, вот дополнительная информация.Это может происходить по разным причинам в зависимости от конкретного модуля, но есть и некоторые общие рекомендации.
phpinfo()
и ищитеextension_dir
подCore
разделом. Здесь должны находиться ваши модули.Установка на * nix (PEAR)
Установка расширений на Windows
источник
perl install <module>
то получилCan't open perl script "install": File or Directory not found
docker-php-ext-install <package>
phpStom с XAMPP
TL; DR Кроме проверки существования файлов, вам может потребоваться добавить букву диска к некоторым записям в вашем файле php.ini
У меня внезапно возникла проблема с использованием phpStorm 7 для отладки php с помощью xampp и xdebug. При попытке установить intellij interperter как xampps php я получил много предупреждений, подобных тому, что указано в вопросе, например:
По какой-то причине мне пришлось добавить букву диска в записи 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"
источник
php -r "echo php_ini_loaded_file();"
В CLI покажет текущий загруженный ini файл, ищите там свое расширение, путь к нему неверный.
источник
Загрузка .dll в Linux
Я столкнулся с этим предупреждением, когда пытался установить расширение php через файл php.ini ;
пока я не понял, что вы не можете загружать расширения .dll в Linux,
но вы должны прокомментировать расширения, которые вы хотите импортировать,
;extension= ... .dll
и правильно установить их черезsudo apt-get install php-...
примечание :
...
это имя расширения, которое вы хотите включить.источник
sudo apt install php-pgsql
специфичнымsudo apt install php7.1-pgsql
для версии php (измените 7.1 на свою версию php)Обратите внимание, что вы также можете получить эту ошибку, если ваша библиотека 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, у меня больше никогда не возникает проблема «Невозможно загрузить динамическую библиотеку».источник
У меня была такая же проблема с XAMPP для Windows, когда я пытаюсь установить композитор. Я сделал
php -v
и ошибку выброса php:Мне потребовалось некоторое время, пока я не понял, что мне нужно настроить свой XAMPP. Итак, я бегу,
setup_xampp.bat
и php return работает как шарм.источник
У меня была такая же проблема с XAMPP для Windows10, когда я пытаюсь установить композитор.
Затем выполните следующие действия
источник
У меня была эта ошибка на нескольких модулях, когда я запускал разные версии 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. Исправил для меня. Вы можете проверить свою версию так: -
источник
После
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 и больше никаких сообщений.источник
В моем случае я получил эту ошибку, потому что я загрузил поточно-ориентированную версию dll (с инфиксацией
-ts-
), но моя установка php php не была поточно-безопасной (с инфиксацией-nts-
). Загрузка правильной версии dll, точно соответствующей моей версии установки php, устранила проблему.источник
thread-safety
/ выключите. Была такая же ошибка в обратном порядке, скачал nts при настройке для ts.Я столкнулся с похожей ошибкой. Ошибка, которую я сделал, заключалась в том, что я использовал имя «контроллера» как «Страницы» вместо «страниц» в моем URL.
источник
В Windows это может быть неправильный путь в «Системных переменных среды». «Путь» к каталогу php.exe должен быть правильным.
источник
Найдите точное расширение для своей версии PHP здесь
источник
Что я сделал, было;
1. Сначала я узнаю, какую версию PHP я использую, с помощью функции phpinfo ()
<?php phpinfo(); ?>
2 - Оттуда вы найдете расположение файла конфигурации (php.ini)
3 - Откройте этот файл
4 - Закомментируйте строку, подобную изображению ниже
источник
'C: /PHP/5.2.13/ext \ php_mcrypt1.dll'
Я бы сказал, что в вашем php.ini есть опечатка (дополнительный 1). Возможно, вы загружаете файл php.ini, отличный от ожидаемого (чтобы убедиться, см. Вывод php.ini).
В остальном убедитесь, что php_mcrypt.dll и PHP:
Были связаны с одной и той же библиотекой времени выполнения VC (обычно msvcrt.dll для VC6 или msvcrt90.dll для VC9) - используйте, например, обходчик зависимостей для этого. Обе сборки отладки или обе сборки выпуска. Обе версии имеют включенный ZTS или отключенный ZTS. Для библиотек, которые зависят от другие библиотеки (DLL), убедитесь, что они доступны (например, в том же каталоге, что и расширение). PHP должен выдавать вам значимые ошибки, если любое из первых трех условий выше не выполняется, но я все равно написал их, потому что я не уверен для PHP 5.2.
источник
В моем случае это сообщение начало появляться, когда я обновил версию php до 7.4.
Чтобы решить эту проблему, мне пришлось искать файлы php.ini, найденные в папке версии php (/etc/php/7.4/apache2/ && /etc/php/7.4/cli/), проверяя строки, в которых расширения я мог видеть, что расширения gd2 и intl были раскомментированы.
источник
Из C: \ xampp \ php \ php.exe я получил
Я решил,
закомментировав C: \ xampp \ php \ php.ini
; extension =
источник
У меня была аналогичная проблема, и ниже приведены некоторые из всех предупреждений / ошибок.
Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\php\ext\curl (The specified module could not be found.), C:\php\ext\php_curl.dll (The specified module could not be found.)) in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'fileinfo' (tried: C:\php\ext\fileinfo (The specified module could not be found.), C:\php\ext\php_fileinfo.dll (The specified module could not be found.)) in Unknown on line 0
Если вы просмотрите предупреждения, вы увидите, что он ищет расширения php,
C:\php\ext\
поэтому я загрузил php вC:\
каталог, и это решило проблемы.источник