![So installieren Sie PHP Sodium auf Ubuntu 22.04](https://rvso.com/image/782596/So%20installieren%20Sie%20PHP%20Sodium%20auf%20Ubuntu%2022.04.png)
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=sodium
entfernt 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.