如何使用PHP Composer解决ext-http错误


我很难受,因为没有有用的文章

环境

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

通过上网解决

1
2
3
  Problem 1
    - The requested PHP extension ext-http * is missing from your system.
      Install or enable PHP's http extension.

如果在

编写器中收到此错误,则需要安装pecl_http。
除了PHP内置扩展模块之外,还有一个扩展模块,称为Pecl扩展模块,可以从网上获得。
https://www.php.net/manual/ja/install.pecl.downloads.php

当我在Apache上运行php时,我记得只能通过在php.ini中设置扩展名(?)来做到这一点
如果它是本地的,则没有http模块,因此您需要安装它。

实施程序

1
2
3
4
$ brew install autoconf
$ brew install m4
$ which m4
/usr/bin/m4

当m4的执行路径是MAMP之类的路径时,请将/ usr / bin放在.bash_profile(.zshprofile)导出的PATH中的MAMP路径之前。
同样,如果用php -v更改了php路径,则可以将php路径放在/ usr / bin

之前。

1
2
$ sudo pecl install pecl_http
$ php -v

如果在php.ini中描述了扩展名= http.so,则确定为
如果使用php -v等得到以下错误,请删除php.ini中的重复扩展名

PHP警告:模块'raphf'已在第0行的Unknown中加载
PHP警告:模块'propro'已在第0行的Unknown中加载
PHP警告:Module'raphf'已在第0行

的Unknown中加载

顺便说一句,指定了php.ini的位置

1
2
3
$  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