如何在 Ubuntu 22.04 上安装 PHP Sodium

如何在 Ubuntu 22.04 上安装 PHP Sodium

我正在运行运行 Ubuntu 22.04 的 Google Cloud 服务器。这是一个典型的 LAMP 堆栈(PHP 为版本 8.1.2)。服务器上的某些网站正在使用 Laravel 8。

我最近将其中一个网站升级到 Laravel 9,但收到以下错误:

Class 'Facade\Ignition\IgnitionServiceProvider' not found

经过一番研究,显然这是由于缺少 PHP 扩展 Sodium 造成的。

如果我php -i | grep sodium使用终端运行,我会得到:

PHP Warning:  PHP Startup: Unable to load dynamic library 'sodium' (tried: /usr/lib/php/20210902/sodium (/usr/lib/php/20210902/sodium: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/sodium.so (/usr/lib/php/20210902/sodium.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
sodium
sodium support => enabled
libsodium headers version => 1.0.18
libsodium library version => 1.0.18
PWD => /home/thomasadam83/libsodium-stable
$_SERVER['PWD'] => /home/thomasadam83/libsodium-stable

我尝试使用以下方法安装 Sodium:

sudo apt install php-sodium

并收到如下回复:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package php-sodium

如果我从终端运行任何 PHP 命令,响应将以以下内容开头:

PHP Warning:  PHP Startup: Unable to load dynamic library 'sodium' (tried: /usr/lib/php/20210902/sodium (/usr/lib/php/20210902/sodium: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/sodium.so (/usr/lib/php/20210902/sodium.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

我找不到任何其他具有类似问题和有效解决方案的帖子。

任何帮助,将不胜感激!

答案1

在 Ubuntu 22.04 中,php8 包已将钠支持直接编译到主包中,没有可加载的库。

我假设您取消了注释;extension=sodiumphp.ini这没有必要,因为钠已经在那里了。您可以尝试再次注释掉该行,然后使用钠函数运行一个简单的 PHP 脚本,例如:

<?php
$result = sodium_compare(452654236423,647382647836);
var_dump($result);

您应该会看到结果,并且没有错误。

$ php test.php
int(-1)

如果是这样的话,你的问题就不是缺少钠支持,而是其他问题。

相关内容