概要
composer require linecorp/line-bot-sdkのエラー解決。いくつかネット記事を回ったものの、同じ解決法をとっている人がいなかったので。
環境は以下です。
Cloud9
PHP 7.3.30
Laravel Framework 6.20.44
エラー内容
$ composer require linecorp/line-bot-sdk
Using version ^7.3 for linecorp/line-bot-sdk
./composer.json has been updated
Running composer update linecorp/line-bot-sdk
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires linecorp/line-bot-sdk ^7.3 -> satisfiable by linecorp/line-bot-sdk[7.3.0].
- linecorp/line-bot-sdk 7.3.0 requires ext-curl * -> it is missing from your system. Install or enable PHP's curl extension.
To enable extensions, verify that they are enabled in your .ini files:
///中略
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
解決方法
1、拡張curl導入(やる必要なかった)
エラーの内容から、拡張curlが無い、あるいは無効だからインストールに失敗したらしいと予想。
$ sudo apt-get install php-curl
拡張curlはエラー無く導入できたと思われた。再度導入を試みるも同様のエラー。
2、無効化されている可能性
導入と同時に有効化されるはずだが、php.iniで無効化されている可能性を考え、php.iniを開く。「extension=curl」で検索をかけるが見つからなかった。
以下コマンドで入ってるモジュールを調べたところ、そもそも拡張curlが入ってないらしい。どうやら1の段階で拡張curl導入に失敗していた。
$ php -m
[PHP Modules]
bcmath
calendar
Core
ctype
date
///後略
3、再度コマンドを変えて拡張curlを導入
$ sudo apt-get install php7.3-curl
違うコマンドを見つけたので拡張curlの導入を再度試みる。
4、line-bot-sdkを導入
$ composer require linecorp/line-bot-sdk
成功! そういえばエラーのとこにもバージョン指定してあったね。見通しが立つのは早かったけど、コマンドを見つけるまでに時間がかかった。
参考記事
大変お世話になりました。ありがとうございます。
参照日(2022/01/17)
https://qiita.com/____easy/items/06406fc62bd7464ad651
https://qiita.com/mktro/items/d164bd4a88fc51f2a99d