libsodium "Call to undefined function" 错误

libsodium "Call to undefined function" error

我已经在 ubuntu 16.04 上安装了 libsodium 和 libsodium-php 但是当我 运行:

`<?php
var_dump([
    \Sodium\library_version_major(),
    \Sodium\library_version_minor(),
    \Sodium\version_string()
]);`

我收到一条错误消息:

PHP Fatal error:  Uncaught Error: Call to undefined function Sodium\library_version_major() 

根据 phpinfo() Sodium 已启用,编译版本为 2.0.1,库版本为 1.0.13。我做错了什么?

libsodium 的 PHP API 在扩展的 2.0.0 版中发生了变化。

最初,所有函数都在 \Sodium\ 命名空间中。

但是,在 PHP 开发人员就其包含在 PHP 7.2 中进行投票后,决定将所有内容移至全局命名空间。

所以,以前 \Sodium\library_version_major() 现在是 sodium_library_version_major()

对于那些安装了 Pecl 版本的 Soidum 并在 php.ini 中启用它的人(扩展名=sodium.so)并且有与 Call to Undefined 相同的错误。 ..

在重新启动 Apache 和 nginx 后,最终没有成功,最终重新启动服务器,让 sodium 正常工作。

PHP 7.3 & >7.3 = libsodium 2.1

希望对您有所帮助。

对于那些无法得到答案的人.. 那是因为它应该是:

<?php
var_dump([
    SODIUM_LIBRARY_MAJOR_VERSION,
    SODIUM_LIBRARY_MINOR_VERSION,
    SODIUM_LIBRARY_VERSION
]);