mamp下缺少pcntl扩展的解决办法,Fatal error: Call to undefined function pcntl_signal()

mac下默认使用的是自带的PHP,导致配置mamp的PHP始终无法成功

1. 如何将默认使用的PHP替换成mamp集成环境下的PHP

  • 修改bash中的配置
 // 打开配置文件
  vim .bash_profile

  // 添加配置
  export PATH="/Applications/MAMP/bin/php/php7.1.20/bin:$PATH"

  // 配置文件生效
  source .bash_profile
  • 修改zsh中的配置
  // 打开配置文件
  vim .zshrc

  // 添加配置
  export PATH="/Applications/MAMP/bin/php/php7.1.20/bin:$PATH"

  // 配置文件生效 尚有疑问
  source .zshrc

2. 添加pcntl扩展

  1. 下载对应版本的PHP http://www.php.net/releases/
  2. 解压文件tar -xzvf php-7.1.20.tar.gz
  3. 进入pcntl目录cd php-7.1.20/ext/pcntl
  4. 进行phpize变异/Applications/MAMP/bin/php/php7.1.20/bin/phpize
  5. 执行命令 ./configure
    –with-php-config=/Applications/MAMP/bin/php/php7.1.20/bin/php-config --prefix=/Applications/MAMP/bin/php/php7.1.20/bin/php
  6. make编译`make && make install
  7. 终端显示以下信息,即为成功
Installing shared extensions:     /Applications/MAMP/bin/php/php7.1.20/lib/php/extensions/no-debug-non-zts-20170718/
  1. 打开mamp对应版本php的配置文件添加 extension=pcntl.so
MAMP PRO menu->File ->Edit Template->PHP->7.1.20
  1. 执行php --ri pcntl 后,终端显示pcntl pcntl support => enabled就大功告成啦。

参考文档
https://www.jianshu.com/p/ec88a61a0fa8

https://*.com/questions/47806090/how-to-enable-pcntl-extensions-in-mamp-pro/50266295

上一篇:线程的生命周期,真的没那么简单


下一篇:fastadmin之Workerman在线聊天