So installieren Sie PHP Sodium auf Ubuntu 22.04

So installieren Sie PHP Sodium auf Ubuntu 22.04

Ich betreibe einen Google Cloud-Server mit Ubuntu 22.04. Es ist ein typischer LAMP-Stack (PHP ist Version 8.1.2). Einige der Websites auf dem Server verwenden Laravel 8.

Ich habe vor Kurzem eine der Websites auf Laravel 9 aktualisiert und die folgende Fehlermeldung erhalten:

Class 'Facade\Ignition\IgnitionServiceProvider' not found

Nach einiger Recherche liegt dies offenbar an einer fehlenden PHP-Erweiterung „Sodium“.

Wenn ich es php -i | grep sodiumüber ein Terminal ausführe, erhalte ich:

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

Ich habe versucht, Sodium mit folgendem zu installieren:

sudo apt install php-sodium

Und erhielt folgende Antwort:

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

Wenn ich beliebige PHP-Befehle vom Terminal aus ausführe, beginnt die Antwort mit:

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

Ich kann keine anderen Beiträge mit einem ähnlichen Problem und einer funktionierenden Lösung finden.

Jede Hilfe wäre willkommen!

Antwort1

In Ubuntu 22.04 ist die Sodium-Unterstützung des PHP8-Pakets direkt in das Hauptpaket kompiliert, es gibt keine ladbare Bibliothek.

Ich nehme an, Sie haben die Kommentare ;extension=sodiumentfernt php.ini. Das war nicht nötig, Sodium war bereits da. Sie können das versuchen, indem Sie die Zeile erneut auskommentieren und dann ein einfaches PHP-Skript mit einer Sodium-Funktion ausführen, zum Beispiel:

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

Sie sollten ein Ergebnis ohne Fehler sehen.

$ php test.php
int(-1)

Wenn dies der Fall ist, liegt Ihr Problem nicht an einer fehlenden Natriumversorgung, sondern an etwas anderem.

verwandte Informationen