PS..I am not a developer, this may not be presented properly
I updated Magento 2.4.1 to 2.4.2 using Composer. Front end is fine. Logging into admin produces the following error in exception log:
[2021-02-09 23:19:50] main.CRITICAL: This is not implemented, as it is not possible to implement Argon2i with acceptable performance in pure-PHP {"report_id":"1b45dc13c4604a67b4369c1284d06c8fa30b7d3716f98ca4dd17474bc0d0b9b7","exception":"[object] (SodiumException(code: 0): This is not implemented, as it is not possible to implement Argon2i with acceptable performance in pure-PHP at /home/baysidesoapworks/bayside/public_html/vendor/paragonie/sodium_compat/src/Compat.php:1927)"} []
I am unsure what this means or how to fix. Any help is appreciated.
Solved! Go to Solution.
I found that a PHP ext is needed. I have cPanel on my server and it was not listed as something to add in WHM. I found this info, logged in to SSH as root and did this install.
My admin is working. From what I read it has to do with the password hash.
I really haven't got much of an idea of most of this, but after I installed, I switched to PHP 7.3 checked admin and it worked fine, then switched back to 7.4 and worked as well. So at least it is fixed for now.
cd /usr/src/ wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz tar -zxvf libsodium-1.0.18.tar.gz cd libsodium* ./configure make && make check make install make check
/opt/cpanel/ea-php72/root/usr/bin/pecl install libsodium /opt/cpanel/ea-php73/root/usr/bin/pecl install libsodium
/opt/cpanel/ea-php74/root/usr/bin/pecl install libsodium
Install PHP-extension sodium will fix this.
Non fpm user can use into terminal and restart apache/nginx
yum install php-sodium
Into multi PHP environment if you want to install for php7.3
yum install php73-php-sodium
Ubuntu users can do like
sudo apt install php-libsodium
Into WHM you can install via easyapache
Hi,
I am also getting the same error on installing a fresh copy of Magento 2.4.2 via command line.
In Compat.php line 1927:
This is not implemented, as it is not possible to implement Argon2i with ac
ceptable performance in pure-PHP
I am also having this error only after admin login - I put the store into dev mode to get the error reporting and saw this.
1 exception(s): Exception #0 (SodiumException): This is not implemented, as it is not possible to implement Argon2i with acceptable performance in pure-PHP Exception #0 (SodiumException): This is not implemented, as it is not possible to implement Argon2i with acceptable performance in pure-PHP <pre>#1 sodium_crypto_pwhash() called at [vendor/magento/framework/Encryption/Encryptor.php:594] #2 Magento\Framework\Encryption\Encryptor->getArgonHash() called at [vendor/magento/framework/Encryption/Encryptor.php:225] #3 Magento\Framework\Encryption\Encryptor->getHash() called at [vendor/magento/module-user/Model/User.php:731] #4 Magento\User\Model\User->_getEncodedPassword() called at [vendor/magento/module-user/Model/User.php:293] #5 Magento\User\Model\User->beforeSave() called at [generated/code/Magento/User/Model/User/Interceptor.php:23] #6 Magento\User\Model\User\Interceptor->beforeSave() called at [vendor/magento/framework/Model/ResourceModel/Db/AbstractDb.php:412] #7 Magento\Framework\Model\ResourceModel\Db\AbstractDb->save() called at [vendor/magento/framework/Model/AbstractModel.php:655] #8 Magento\Framework\Model\AbstractModel->save() called at [vendor/magento/framework/Interception/Interceptor.php:58] #9 Magento\User\Model\User\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #10 Magento\User\Model\User\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #11 Magento\User\Model\User\Interceptor->___callPlugins() called at [generated/code/Magento/User/Model/User/Interceptor.php:581] #12 Magento\User\Model\User\Interceptor->save() called at [vendor/magento/module-user/Observer/Backend/AuthObserver.php:149] #13 Magento\User\Observer\Backend\AuthObserver->execute() called at [vendor/magento/framework/Event/Invoker/InvokerDefault.php:88] #14 Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod() called at [vendor/magento/framework/Event/Invoker/InvokerDefault.php:74] #15 Magento\Framework\Event\Invoker\InvokerDefault->dispatch() called at [vendor/magento/framework/Event/Manager.php:66] #16 Magento\Framework\Event\Manager->dispatch() called at [generated/code/Magento/Framework/Event/Manager/Proxy.php:95] #17 Magento\Framework\Event\Manager\Proxy->dispatch() called at [vendor/magento/module-user/Model/User.php:603] #18 Magento\User\Model\User->authenticate() called at [generated/code/Magento/User/Model/User/Interceptor.php:140] #19 Magento\User\Model\User\Interceptor->authenticate() called at [vendor/magento/module-user/Model/User.php:653] #20 Magento\User\Model\User->login() called at [generated/code/Magento/User/Model/User/Interceptor.php:158] #21 Magento\User\Model\User\Interceptor->login() called at [vendor/magento/module-backend/Model/Auth.php:162] #22 Magento\Backend\Model\Auth->login() called at [vendor/magento/framework/Interception/Interceptor.php:58] #23 Magento\Backend\Model\Auth\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #24 Magento\Backend\Model\Auth\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #25 Magento\Backend\Model\Auth\Interceptor->___callPlugins() called at [generated/code/Magento/Backend/Model/Auth/Interceptor.php:59] #26 Magento\Backend\Model\Auth\Interceptor->login() called at [vendor/magento/module-backend/App/Action/Plugin/Authentication.php:205] #27 Magento\Backend\App\Action\Plugin\Authentication->_performLogin() called at [vendor/magento/module-backend/App/Action/Plugin/Authentication.php:157] #28 Magento\Backend\App\Action\Plugin\Authentication->_processNotLoggedInUser() called at [vendor/magento/module-backend/App/Action/Plugin/Authentication.php:125] #29 Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch() called at [vendor/magento/framework/Interception/Interceptor.php:135] #30 Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #31 Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->___callPlugins() called at [generated/code/Magento/Backend/Controller/Adminhtml/Index/Index/Interceptor.php:32] #32 Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->dispatch() called at [vendor/magento/framework/App/FrontController.php:186] #33 Magento\Framework\App\FrontController->processRequest() called at [vendor/magento/framework/App/FrontController.php:118] #34 Magento\Framework\App\FrontController->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58] #35 Magento\Framework\App\FrontController\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #36 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #37 Magento\Framework\App\FrontController\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/App/FrontController/Interceptor.php:23] #38 Magento\Framework\App\FrontController\Interceptor->dispatch() called at [vendor/magento/framework/App/Http.php:116] #39 Magento\Framework\App\Http->launch() called at [generated/code/Magento/Framework/App/Http/Interceptor.php:23] #40 Magento\Framework\App\Http\Interceptor->launch() called at [vendor/magento/framework/App/Bootstrap.php:263] #41 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:29] </pre>
PHP 7.4 installed.
For fix it recommended to install sodium PHP-extension (needs libsodium), but I'm not sure what can help us.
I found that a PHP ext is needed. I have cPanel on my server and it was not listed as something to add in WHM. I found this info, logged in to SSH as root and did this install.
My admin is working. From what I read it has to do with the password hash.
I really haven't got much of an idea of most of this, but after I installed, I switched to PHP 7.3 checked admin and it worked fine, then switched back to 7.4 and worked as well. So at least it is fixed for now.
cd /usr/src/ wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz tar -zxvf libsodium-1.0.18.tar.gz cd libsodium* ./configure make && make check make install make check
/opt/cpanel/ea-php72/root/usr/bin/pecl install libsodium /opt/cpanel/ea-php73/root/usr/bin/pecl install libsodium
/opt/cpanel/ea-php74/root/usr/bin/pecl install libsodium
Same error here - trying libsodium update......
Thanks for the info!
Install PHP-extension sodium will fix this.
Non fpm user can use into terminal and restart apache/nginx
yum install php-sodium
Into multi PHP environment if you want to install for php7.3
yum install php73-php-sodium
Ubuntu users can do like
sudo apt install php-libsodium
Into WHM you can install via easyapache
Hi there,
I can confirm installing Sodium on the Apache Server works - I rolled back to 7.3 and then back to 7.4 using multi PHP then I'm back in the game.
Thanks, Everyone For Their Answers -
Hi,
According to php.net all the versions greater than and equal to PHP 7.2, lib sodium is bundled in itself.
Do we still need to explicitly install sodium extension on php 7.3 ?
I am getting the same error. unable to login Magento admin and not able to create a new one via command line. did anyone solve this issue?