如何在 MAMP pro 中启用 pcntl 扩展?

How to enable pcntl extensions in MAMP pro?

我正在使用 laravel/horizon 和 Osx MAMP pro

当我运行作曲家时它需要laravel/horizon:~1.0

它显示一条消息 -

laravel/horizon v1.0.8 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.

我检查了文件夹 /Applications/MAMP/bin/php7.1.1/php/ext,它不包含 pcntl 扩展名。

如何安装?

  1. http://www.php.net/releases/
  2. 下载 php
  3. tar -xzvf php-7.2.1.tar.gz
  4. cd php-7.2.1/ext/pcntl
  5. /Applications/MAMP/bin/php/php7.2.1/bin/phpize
  6. 如@drewjoh 所述./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.1/bin/php-config --prefix=/Applications/MAMP/bin/php/php7.2.1/bin/php
  7. make && make install
  8. 终端显示

Installing shared extensions: /Applications/MAMP/bin/php/php7.2.1/lib/php/extensions/no-debug-non-zts-20170718/

  1. 打开MAMP PRO菜单->文件->编辑模板->PHP->7.2.1在php.ini文件末尾添加extension=pcntl.so .

  2. 运行 命令 php --ri pcntl 并显示 pcntl pcntl support => enabled

补充一下。也许您按照上述步骤操作后仍然无法将其安装到 /Applications/MAMP/bin/php/php7.2.1/lib/php/extensions/no-debug-non-zts-20170718/。这是我做的对我有用的东西。

我在 --prefix 标志之前添加了 --with-php-config,它起作用了。请参阅下面的步骤。

  1. http://www.php.net/releases/ 下载你的 MAMP php 版本我的是 php7.2.22

打开您的终端并进入您的下载文件夹。然后运行这个命令解压tar.gz文件

tar -xzvf php-7.2.22.tar.gz

解压后cd进入pcntl目录

cd php-7.2.22/ext/pcntl

运行 终端的下一行配置 PHP Api、Zend 模块 Api 和 Zend 扩展 Api.

/Applications/MAMP/bin/php/php7.2.22/bin/phpize

然后运行

./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.22/bin/php-config --prefix=/Applications/MAMP/bin/php/php7.2.22/bin/php; make && make install;

你应该看看

Installing shared extensions:     /Applications/MAMP/bin/php/php7.2.22/lib/php/extensions/no-debug-non-zts-20170718/

然后你可以重复上面的最后两个步骤。

您可以从这里下载预编译的扩展https://github.com/khanakiaphp/mamp_extensions