如何在 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

我嘗試使用以下方法安裝鈉:

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=sodium評論php.ini。那是不必要的,鈉已經存在了。您可以嘗試再次註解掉該行,然後使用鈉函數執行一個簡單的 PHP 腳本,例如:

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

您應該看到結果,沒有錯誤。

$ php test.php
int(-1)

如果是這種情況,你的問題不是缺乏鈉支持,而是其他問題。

相關內容