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なんかを見ると、他の解決策もありそうな感じではありますが、
私にはよく分からずです…