mac系统下为 php 添加 pcntl 扩展


Posted in PHP onAugust 28, 2016

前言:

pcntl 介绍

pcntl扩展可以支持 PHP 的多线程操作。(非Unix类系统不支持此模块)

phpize 介绍

phpize 可以用来给 PHP 动态的添加扩展。比如编译 PHP 时忘记添加某扩展,后来想添加该扩展,即可以使用 phpize 动态的添加该扩展。

本文将介绍如何使用 phpize 给 Mac下的集成环境 MAMP 添加 PHP 的 pcntl 扩展。类 Unix 的环境都可以使用本方法安装,注意灵活变通。

安装:

下载和本地 PHP 版本对应的源码包,地址为:

http://www.php.net/releases/

然后按照如下步骤编译(演示的是给 MAMP的PHP 5.6.10版本添加 pcntl扩展):

$ tar -xzvf php-5.6.10.tar.gz
$ mv php-5.6.10 php
$ mkdir -p /Applications/MAMP/bin/php/php5.6.10/include
$ mv php /Applications/MAMP/bin/php/php5.6.10/include

$ cd /Applications/MAMP/bin/php/php5.6.10/include/php
$ ./configure

$ MACOSX_DEPLOYMENT_TARGET=10.10
$ CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
$ CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
$ export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET

$ cd ext/pcntl
$ phpize
$ ./configure
$ make
$ cp modules/pcntl.so /Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/  

$ echo "extension=pcntl.so" >> /Applications/MAMP/bin/php/php5.6.10/conf/php.ini

$ /Applications/MAMP/bin/php/php5.6.10/bin/php --ri pcntl
pcntl
pcntl support => enabled
PHP 相关文章推荐
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
深入php self与$this的详解
Jun 08 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
ThinkPHP中图片按比例切割的代码实例
Mar 08 PHP
PHP7 foreach() 函数修改
Mar 09 PHP
PHP编写简单的App接口
Aug 28 #PHP
PHP导出带样式的Excel示例代码
Aug 28 #PHP
总结对比php中的多种序列化
Aug 28 #PHP
PHP打印输出函数汇总
Aug 28 #PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 #PHP
PHP常用的三种设计模式汇总
Aug 28 #PHP
Apache PHP MySql安装配置图文教程
Aug 27 #PHP
You might like
PHP简单遍历对象示例
2016/09/28 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
php unlink()函数使用教程
2018/07/12 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
vue debug 二种方法
2018/09/16 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
python实现局域网内实时通信代码
2019/12/22 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
小学语文课后反思精选
2014/04/25 职场文书
机械操作工岗位职责
2014/08/08 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
离婚协议书的范本
2015/01/27 职场文书
2015年女生节活动总结
2015/02/27 职场文书
表扬信格式模板
2015/05/05 职场文书
go xorm框架的使用
2021/05/22 Golang