Невозможно загрузить динамическую библиотеку ‘php_libsodium’

Я пытаюсь установить расширение libsodium php (https://pecl.php.net/package/libsodium/1.0.6/windows).

Когда я бегу php -mВ списке появляется libsodium.
Однако, когда я захожу на phpinfo, он не указан.

Я также заметил, что apache дает мне ошибку: PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\xampp\\php\\ext\\php_libsodium.dll' - The specified module could not be found.\r\n in Unknown on line 0

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

Любая помощь будет оценена.

4

Решение

По моему опыту, вы можете получить сообщение «Невозможно загрузить динамическую библиотеку» по нескольким причинам:

  1. Вы включили модуль в php.ini, но PHP не может найти файл dll (либо он не существует, либо он находится в неправильном каталоге).
  2. Файл dll был скомпилирован для неправильной архитектуры (32-битной или 64-битной) или неправильной модели многопоточности (например, многопоточная DLL-библиотека, используемая в не-поточно-ориентированной версии PHP).
  3. У DLL есть некоторые зависимости, которые не могут быть найдены. Например, вам может потребоваться разместить некоторые дополнительные файлы .dll в месте, где PHP сможет их найти (например, в главном каталоге PHP).

В вашем случае, учитывая, что вы указываете разницу между тем, что PHP отчеты используют php -m а также phinfo() (предположительно на веб-странице), # 1 может быть причиной. Расширения ищутся в месте, указанном extension_dir установка в php.ini. Если это относительный путь, то он может разрешаться по-другому в контексте веб-сервера, чем при запуске из командной строки.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]