環境・前提
筆者は素人です。
この記事は記録が目的です。
ただ、流れくらいは参考になって欲しい。
windows10homeにdocker-composeでLEMP環境を作り、Laravelのプロジェクトを作成。
LaravelでLINE Botを作りたいのでline-bot-sdkを入れたかった。
やったこと
dockerのコンテナで
$ composer require linecorp/line-bot-sdk 4.2.*
を実行。
エラーの内容
Problem 1
- Installation request for linecorp/line-bot-sdk 4.2.* -> satisfiable by linecorp/line-bot-sdk[4.2.0].
- linecorp/line-bot-sdk 4.2.0 requires ext-sockets * -> the requested PHP extension sockets is missing from your system.
要はext-socketsというやつがないからエラーになるっぽい。
解決策を調べた
ググったら2つのやり方が出てきた。
1つはphp.iniファイルにある
;extension=sockets
のコメントアウトを外す、というもの。
でも自分のphp.iniにはそもそも;extension=sockets
自体がなかった。
2つ目はDockerfileの
RUN
docker-php-ext-install
にsockets
を加えるというもの。
で、php -m
コマンドを実行してインストールされているモジュールを確認したところ、
socketのモジュールがなかったので2つ目のやり方でいけると予想。
解決方法
2つ目のやり方でDockerfile
に変更を加え、コンテナから出て
$docker-compose down
$docker-compose up -d --build
を実行。
これでDockerfile
の再読み込みを行う。
結果
無事いけました!