SodiumがなくてLaravel Passportのデプロイに失敗した
ローカル環境で、Laravel Passportを追加したプロジェクトをレンタルサーバー(Xserver)へデプロイした際、
「ext-sodium がない」と composerに怒られたので、その解決策をまとめておきます。
今回の環境
- PHP 7.4
- Composer 2.0
- Laravel 8
起こったこと
Xserverで、composer installしようとしたら落ちました。
laravel/passportは、lcobucci/jwtに依存しており、lcobucci/jwtをインストールできず、失敗してしまったようです。
※こんな感じ↓
lcobucci/jwt 4.1.5 requires ext-sodium * -> it is missing from your system. Install or enable PHP's sodium extension.sodium を入れるには、管理者権限が必要なため、
レンタルサーバー(Xserver)から乗り換えが必要か…?と、思っていたのですが、、
解決策
色々調べていると、lcobucci/jwtのバージョンを 4.0.4 まで下げれば
sodium がなくてもインストールできることが判明!(laravel/passportの依存も問題なさそうです)
https://packagist.org/packages/lcobucci/jwt?#4.0.4
と、いうことで、新たにバージョン指定でlcobucci/jwtをインストールすることで、
勝手にインストールされていた 4.1.5 から 4.0.4 へ自動でダウンロードすることができました。
composer require lcobucci/jwt:4.0.4あとがき
この状態で、再度デプロイすることで、レンタルサーバー(Xserver)でも
無事、Laravel Passportをインストールすることができました。
このIssueなんかを見ると、他の解決策もありそうな感じではありますが、
私にはよく分からずです…
