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


Make installed PCNTL extension available to command line PHP in MAMP

我使用MAMP Pro来管理我的开发环境,PHP版本为7.0.12,以模块模式运行。

我已经为PHP添加了pcntl模块,并按照这个答案中的指示进行了编译。

pcntl.so文件在我的/Applications/MAMP/bin/php/php7.0.12/lib/php/extensions/no-debug-non-zts-20151012文件夹中。此外,在我的vhost上,我可以输出phpinfo()并验证扩展是否已安装,并由function_exists('pcntl_signal')进行额外检查,结果返回true。

然而,在终端上运行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正在使用的命令行之外,还有没有办法通过命令行使pcntl模块对PHP可用?

MAMP在PHP中使用了两个独立的ini文件。

一个可以通过GUI进行编辑,另一个需要手动编辑。对于这个PHP版本,必须在/Applications/MAMP/bin/php/php7.0.12/conf/php.ini 中添加扩展

在上述ini文件中添加extension=pcntl.so后,运行php -i | grep pcntl将输出

pcntl

pcntl support => enabled