libsodium"调用未定义的函数"错误

时间:2017-07-15 22:30:58

标签: php ubuntu-16.04 libsodium

我在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()启用了钠,编译版本为2.0.1,库版本为1.0.13。我做错了什么?

3 个答案:

答案 0 :(得分:2)

libsodium的PHP API在扩展版本2.0.0中已更改。

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

然而,在PHP开发人员对其包含在PHP 7.2中投票之后,决定将所有内容移动到全局命名空间。

因此,以前的\Sodium\library_version_major()现在是sodium_library_version_major()

答案 1 :(得分:1)

对于那些安装了Pecl版本的Soidum并在php.ini中启用了它的人(extension = sodium.so)并具有相同的错误,例如调用未定义 ...

重启Apache&nginx之后,由于缺乏成功,最终Reboot服务器无法正常工作。

PHP 7.3和> 7.3 = libsodium 2.1

希望对您有所帮助。

答案 2 :(得分:1)

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

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