Mac MAMP PRO 编译安装PHP Pcntl扩展

环境: MAC OS 10.14、MAMP PRO 5.1
最近有个项目需要用到WebSocket技术,加上公司项目开发框架是Thinkphp5,于是选择Workerman+Thinkphp5进行开发。最主要的原因就是Thinkphp官方已经集成了Workerman,涂个方便。
Workerman要求PHP必须安装pcntl、posix两个扩展,但是MAMP PRO预装的PHP里并没有pcntl,于是决定编译安装。

准备工作:

  1. 下载源码包 :我在MAMP PRO使用的PHP版本是5.6.37,要去PHP官方下载对应的源码包。下载地址 http://php.net/releases/ 找到你对应的PHP版本下载。我下载的是php-5.6.37.tar.gz
  2. 找到正确的php.ini:MAMP PRO 是支持多个PHP版本的,每个版本都对应有不同的php.ini。比如我的PHP版本是5.6.37那么对应的目录是MAMP PRO根目录下的bin/php5.6.37/conf/php.ini 切记切记切记,重要的事情说三遍

遇坑:

  1. 之前直接在MAMP PRO里修改php.ini怎么都不生效在这里插入图片描述
  2. 修改MAMP PRO的模板配置文件也不生效File->Edit Template->PHP->5.6.37

开始工作:
把刚刚下载好的源码包解压后在终端执行以下命令

  1. 进入源码包找到pcntl扩展目录。
    $ cd 你的下载目录/php-5.6.37/ext/pcntl

  2. 使用phpize生成configure。(根据你自己的phpize执行)
    $ /Applications/MAMP/bin/php/php5.6.37/bin/phpize
    如果中途提示autoconf未安装请执行brew install autoconf
    不懂brew就去这里看 https://www.jianshu.com/p/32a4fb9fc4ba

  3. 执行configure。
    $ ./configure --with-php-config=/Applications/MAMP/bin/php/php5.6.37/bin/php-config

  4. 编译生成.so文件。
    $ make && make install
    当编译完成后看到
    在这里插入图片描述
    那么恭喜你编译成功。
    生成的.so文件:
    /Applications/MAMP/bin/php/php5.6.37/lib/php/extensions/no-debug-non-zts-20131226/pcntl.so

  5. 把编译好的pcntl.so加入php.ini文件
    打开MAMP PRO根目录下的bin/php5.6.37/conf/php.ini
    添加一行 extension=pcntl.so
    在这里插入图片描述

6.最后一步重启MAMP PRO
终端运行 $ /Applications/MAMP/bin/php/php5.6.37/bin/php -m 查看pcntl是否被正确加载
在这里插入图片描述

大功造成!!!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值