LaradockでSocket通信をしようとしたらエラーが出て詰まりました。解決方法を共有します。
目次
エラー内容
Call to undefined function socket_create()
このエラーは、PHPのSocket拡張機能が有効になっていないことを示しています。Laradock環境でこの問題を解決する方法を紹介します。
解決手順
1. Dockerfileの修正
使用しているPHPのDockerfileを開き、Socket拡張機能をインストールするコマンドを追加します。
dockerfile FROM php:7.4-fpm
# 既存のRUNコマンドに以下を追加
RUN docker-php-ext-install sockets
# 他の既存の命令...
注意: バージョンは使用しているPHPのバージョンに合わせて調整してください。
2. コンテナの再ビルド
Dockerfileを修正した後、以下のコマンドでコンテナを再ビルドします:
docker-compose build php-fpm
docker-compose up -d
3. PHP設定の確認
コンテナ内でPHPの設定を確認し、sockets拡張機能が有効になっていることを確認します:
bash docker-compose exec php-fpm php -m | grep sockets
このコマンドで “sockets” が表示されれば、拡張機能が正しく有効化されています。
結果
これらの手順を実行すると、socket_create()
関数が使用可能になり、エラーが解決されるはずです。
問題が解決しない場合は、Laradockの設定やPHPのバージョンなど、より詳細な情報を確認し、必要に応じて追加の対応を行ってください。
コメント