なにこれ
Laravelをline連携させようとした際に困ったことの備忘録です
エラー内容
$ composer require revolution/laravel-line-sdk
Using version ^1.3 for revolution/laravel-line-sdk
./composer.json has been updated
Running composer update revolution/laravel-line-sdk
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- revolution/laravel-line-sdk 1.3.0 requires linecorp/line-bot-sdk ^6.0 -> satisfiable by linecorp/line-bot-sdk[6.0.0, 6.1.0, 6.2.0, 6.3.0].
- revolution/laravel-line-sdk[1.3.1, ..., 1.3.2] require linecorp/line-bot-sdk ^6.0||^7.0 -> satisfiable by linecorp/line-bot-sdk[6.0.0, 6.1.0, 6.2.0, 6.3.0, 7.0.0, 7.1.0, 7.2.0].
- linecorp/line-bot-sdk[6.0.0, ..., 6.3.0, 7.0.0, ..., 7.2.0] require ext-sockets * -> it is missing from your system. Install or enable PHP's sockets extension.
- Root composer.json requires revolution/laravel-line-sdk ^1.3 -> satisfiable by revolution/laravel-line-sdk[1.3.0, 1.3.1, 1.3.2].
To enable extensions, verify that they are enabled in your .ini files:
- /usr/local/etc/php/php.ini
- /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini
- /usr/local/etc/php/conf.d/docker-php-ext-intl.ini
- /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini
- /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
- /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
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.
原因
require ext-sockets * -> it is missing from your system.
とあるので、socketsモジュールが使えるように整えれば良さそう。
対処法
環境起因なので状況に合わせた対応が必要
①既にモジュールは存在していている場合
このエラーこちらのQiita記事で紹介されている通り、モジュール導入済みの場合だと php.ini のsocketsを有効にしてあげるだけでok
php.ini
;extension=sockets
この箇所の ;
を外してあげる
ちなみにsocketsモジュールの有無は
php -m
を実行してcurlを確認することで判断できる。
② ①の手順で解決しない場合
モジュール追加をします。
doccker環境でphp公式のイメージを使っている場合、Dockerfileに
Dockerfile
docker-php-ext-install sockets
を追加でビルドしてあげると導入できました。
複数のモジュールを追加する場合はスペース区切りです。
Ubuntuなどで直接コマンドからモジュールを導入する場合は
$ sudo apt-get update -y
$ sudo apt-get install -y php-sockets
でいけるはず(動作未確認)