有益な記事がなく苦労したのでメモ
環境
PHP7.4(CakePHP3.5)
ローカル(mac mojaba 10.14.6)
PhpStormで拡張モジュールはcomposer.jsonに書かないと警告が出るらしい
簡単にまとめるとタイトルの通り
ext-httpも例外ではないらしい
php拡張由来の定数や関数などに依存しているときにcomposer.jsonにその依存が明示されていることを検査するらしい
でもそれを強制するってそんな大切か?って思うんですがw
ネット上をサーフィンしまくって解決
Problem 1
- The requested PHP extension ext-http * is missing from your system.
Install or enable PHP's http extension.
composerでこのエラーが出た場合はpecl_httpをインストールする必要があった。
PHP組み込み拡張モジュールとは別に、Pecl拡張モジュールというネット上から取得してくる拡張モジュールが存在する
https://www.php.net/manual/ja/install.pecl.downloads.php
Apacheでphpを動かしているとphp.iniでextensionの設定のみでできるような記憶であったが(?)
ローカルの場合はhttpモジュールがないのでインストールする必要がある。
実施手順
$ brew install autoconf
$ brew install m4
$ which m4
/usr/bin/m4
m4の実行パスがMAMPとかのパスになっている場合.bash_profile(.zshprofile)でexportしているPATHで/usr/binをMAMPパスよりも前に持ってくる
php -vでphpのパスが変わってしまった場合も同様に、/usr/binよりも前にphpパスを持って来ればOK
$ sudo pecl install pecl_http
$ php -v
php.iniにextension=http.soが記載されていればOK
php -v などで下記エラーが出る場合はphp.iniでextensionの重複を消す
PHP Warning: Module 'raphf' already loaded in Unknown on line 0
PHP Warning: Module 'propro' already loaded in Unknown on line 0
PHP Warning: Module 'raphf' already loaded in Unknown on line 0
ちなみにphp.iniの場所特定
$ php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/etc/php/7.4
Loaded Configuration File => /usr/local/etc/php/7.4/php.ini
参考記事
https://www.php.net/manual/ja/install.pecl.downloads.php
https://www.366service.com/jp/qa/640015a450ba68b8414671db0ac15a48
https://stackoverflow.com/questions/59618142/fixing-m4-on-mac-os-10-14-5