Натрий не загружается на XAMPP PHP 7.2
Эй, по какой-то причине, когда я использую XAMPP PHP 7.2, все функции натрия не работают. Когда я бегу print_r(get_loaded_extensions());
он не показывает натрий в списке. Когда я захожу на http://php.net/manual/en/sodium.installation.php он говорит, что установка не нужна, они являются частью ядра. Итак, я пошел в свой php.ini
Конфигурационный файл и удостоверился, что это не отключало натрий, это говорит extension=php_sodium.dll
, Я подошел к консоли, чтобы проверить, есть ли ошибки, их не было. Это было странно, потому что Argon2i
работает нормально. Константы Argon2i все определены и при использовании в password_hash()
Функция генерирует пароль хеш без проблем. Я использую Windows в качестве моей ОС. Есть ли что-нибудь еще, что может вызвать что-то подобное, любая помощь будет хорошей. Заранее спасибо.
8 ответов
Вы уверены, что редактируете правильный php.ini?
Начиная с PHP 7.2, ini-файл (по крайней мере, на моем ПК с Windows), синтаксис для загрузки расширения теперь extension=modulename
вместо extension=php_modulename.dll
,
Для Windows XAMPP PHP 7.2.4, чтобы исправить ошибку:
Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку'odium' (пробовал: C:\xampp\php\ext\odium (Указанный модуль не найден.), C:\xampp\php\ext\php_sodium.dll (Указанный модуль не найден.)) В Неизвестно в строке 0
В apache / bin / (Apache Module) должна быть копия php / libsodium.dll (расширение PHP). Предполагается, но не проверяется, что это должен быть один и тот же файл.
Предполагая, что php / libsodium.dll и php/ext/php_sodium.dll представляют собой одну и ту же сборку, как в случае с новой установкой XAMPP 7.2.4, установка происходит так:
1. Add "extension=sodium" to php.ini (no quotes)
2. Copy php/libsodium.dll to apache/bin/
3. Restart Server
Откройте файл php.ini из C:\xampp\php\ -> в разделе " Динамические расширения" и добавьте
extension=sodium
Это будет работать и для wamp
зарегистрируйте PHP-модуль, если натрий доступен или нет, с помощью следующей команды
cmd> php -m
cmd> php --ri sodium
если натрия нет в списке, перейдите в свой /php/php.ini и найдите «;extension=sodium» и удалите «;» тебе будет хорошо идти
Я столкнулся с той же проблемой, но переустановка XAMPP 7.2 не помогает.
Наконец, я вернулся к XAMPP 7.1.14, затем установил натрий дополнительно, и он работает.
- Установите XAMPP(xampp-win32-7.1.14-0-VC14)
- Загрузить libsodium с именем php_libsodium-2.0.9-7.1-ts-vc14-x86.zip
- Переименуйте php_sodium.dll в php_libsodium.dll, затем поместите его в C:\xampp\php\ext
- Поместите libsodium.dll в C:\xampp\apache\bin
- Добавьте в php.ini:
extension=php_libsodium.dll
Я знаю, что откат не очень хорошая идея.
Но по крайней мере это работает для меня.
Для тех, кто борется с этим в Windows XAMPP, включая PHP 7.3.9:
В c:\xampp\xampp\php уже есть файл libsodium.dll.
Однако расширение по умолчанию не активировано в файле php.ini. Просто отредактируйте файл, как указано @Alshoja. На самом деле нужная запись уже есть, но закомментирована, просто удалите комментарий:
#extension=sodium;
к
extension=sodium;
Перезагрузите сервер, затем проверьте через phpinfo(); и при поиске "натрия" вы должны увидеть столбец "натриевая поддержка" со связанной информацией.
Этот ответ предназначен только для пользователей Linux(Ubuntu).
По умолчанию PHP установлен как системный пакет, но если вы используете автономную установку PHP (XAMPP [Binami]), вам необходимо указать путь php-config в следующем атрибуте
./configure
при установке LIBSODIUM для вашего PHP.
--with-php-config
Я установил xampp-linux-x64-7.4.15-0, и, что удивительно, в этой настройке нет PHP-модуля натрия. Сначала я установил библиотеку Sodium, а затем установил PHP Libsodium extesnion для XAMPP.
/opt/lampp/etc/php -m //Check if you have sodium installed
sudo apt-get update
sudo apt-get install build-essential libtool autoconf
Скачайте стабильную версию Sodium Library по ссылке
https://github.com/jedisct1/libsodium
//Go inside the package folder
cd <downloaded package dir>
./configure
make
sudo make install
Он установит библиотеку, и вы можете проверить внутри
/usr/local/lib/
. Файл для libsodium был создан с таким расширением.
Теперь мы скачаем и установим библиотеку PHP для
https://github.com/jedisct1/libsodium-php
// Заходим в папку пакета
cd <downloaded package dir>
./configure --with-php-config=/opt/lampp/bin/php-config //This time we provided preferred php config
make
sudo make install
Это не будет расширением для XAMPP PHP, и вы можете проверить
sodium.so
файл был создан внутри
/opt/lampp7.4/lib/php/extensions/no-debug-non-zts-2019****
.
Добавить расширение внутри php.ini
sudo bash -c 'echo "extension = "odium.so" ">> /opt/lampp/etc/php.ini'
Перезапустите XAMPP и проверьте установленные модули php.
sudo /opt/lampp/lampp restart
/opt/lampp/etc/php -m
Если все работает нормально, то натрий вызывающе попадет в список.
ВАШЕ ЗДОРОВЬЕ
эта ошибка может быть вызвана «httpd» в Windows Xampp, поскольку libsodium.dll не загружен. однако вы можете решить эту проблему, добавив путь к файлу DLL в:
"C:\xampp\apache\conf\extra\httpd-xampp.conf"
затем добавьте строку
loadFile "C:/xampp/php/libsodium.dll"
решение libsodium.dll не найдено и не загружено
наконец, перезагрузите сервер Apache, и все будет в порядке