使已安装的 PCNTL 扩展可用于 MAMP 中的命令行 PHP

Make installed PCNTL extension available to command line PHP in MAMP

我正在使用 MAMP Pro 来管理我的开发环境,PHP 是版本 7.0.12 并且 运行 处于模块模式。

我已经为 PHP 添加了 pcntl 模块,并按照 this answer.

的指示编译了它

pcntl.so 文件在我的 /Applications/MAMP/bin/php/php7.0.12/lib/php/extensions/no-debug-non-zts-20151012 文件夹中。此外,在我的虚拟主机上,我可以输出 phpinfo() 并验证扩展是否已安装,并通过 function_exists('pcntl_signal') 进行额外检查,其中 returns 为真。

但是,当从终端 运行 PHP 时,我无法让它工作。我正在使用 MAMP 安装的那个,并通过 /Applications/MAMP/bin/php/php7.0.12/bin/php 调用它。但是,我收到函数 pcntl_signal 不存在的错误。

另外运行 /Applications/MAMP/bin/php/php7.0.12/bin/php -i | grep pcntl不输出任何东西。

除了 apache 正在使用的那个之外,还有没有办法让 PHP 通过命令行可以使用 pcntl 模块?

MAMP 使用两个单独的 ini 文件 PHP。

一个可以通过GUI编辑,另一个需要手动编辑。对于此 PHP 版本,必须在 /Applications/MAMP/bin/php/php7.0.12/conf/php.ini

中添加扩展

在上面的ini文件中加入extension=pcntl.so后,运行 php -i | grep pcntl会输出

pcntl

pcntl support => enabled