LoginSignup
2
2

More than 3 years have passed since last update.

PHP composerでext-httpエラーの解決方法

Last updated at Posted at 2020-07-02

有益な記事がなく苦労したのでメモ

環境

PHP7.4(CakePHP3.5)
ローカル(mac mojaba 10.14.6)

PhpStormで拡張モジュールはcomposer.jsonに書かないと警告が出るらしい

簡単にまとめるとタイトルの通り

ext-httpも例外ではないらしい

php拡張由来の定数や関数などに依存しているときにcomposer.jsonにその依存が明示されていることを検査するらしい

でもそれを強制するってそんな大切か?って思うんですがw

詳しくは下記記事
https://blog.pinkumohikan.com/entry/warning-ext-json-is-missing-in-composerjson-on-jetbrains-intellij

ネット上をサーフィンしまくって解決


  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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2