![Ubuntu 22.04에 PHP Sodium을 설치하는 방법](https://rvso.com/image/782596/Ubuntu%2022.04%EC%97%90%20PHP%20Sodium%EC%9D%84%20%EC%84%A4%EC%B9%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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)
그렇다면 문제가 나트륨 지원이 누락된 것이 아니라면 다른 문제입니다.