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=sodium에서 주석 처리를 해제했다고 가정합니다 php.ini. 그럴 필요는 없었습니다. 나트륨은 이미 거기에 있었습니다. 해당 라인을 다시 주석 처리하여 시도한 다음 나트륨 함수를 사용하여 간단한 PHP 스크립트를 실행할 수 있습니다. 예를 들면 다음과 같습니다.

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

오류 없이 결과가 표시되어야 합니다.

$ php test.php
int(-1)

그렇다면 문제가 나트륨 지원이 누락된 것이 아니라면 다른 문제입니다.

관련 정보