MAMP 环境下为 php 添加 pcntl 扩展

前言:

pcntl 介绍

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

phpize 介绍

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

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

安装:

下面演示的是给 MAMP的PHP 5.6.10版本添加 pcntl扩展。

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

http://www.php.net/releases/
然后按照如下步骤进行编译:

# 解压源码包并初始化目录
$ 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

# 添加一些标志来告诉系统怎样编译。MAMP PHP已经建成这样,如果不这样做,编译的共享对象将无法工作。
$ 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

# 编译 pcntl.so 文件
$ cd ext/pcntl
$ phpize
$ ./configure
$ make

# 将编译出来的扩展文件pcntl.so 移动到php的扩展目录
$ cp modules/pcntl.so /Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/   

# 向php.ini 文件中添加该扩展
$ echo "extension=pcntl.so" >> /Applications/MAMP/bin/php/php5.6.10/conf/php.ini

# pcntl现在应该已经启用,要检查是否安装成功,只需运行:
$ /Applications/MAMP/bin/php/php5.6.10/bin/php --ri pcntl
pcntl
pcntl support => enabled

如出现以上信息,则说明该扩展已安装成功。

时间: 2025-01-31 09:27:52

MAMP 环境下为 php 添加 pcntl 扩展的相关文章

mac系统下为 php 添加 pcntl 扩展_php技巧

前言: pcntl 介绍 pcntl扩展可以支持 PHP 的多线程操作.(非Unix类系统不支持此模块) phpize 介绍 phpize 可以用来给 PHP 动态的添加扩展.比如编译 PHP 时忘记添加某扩展,后来想添加该扩展,即可以使用 phpize 动态的添加该扩展. 本文将介绍如何使用 phpize 给 Mac下的集成环境 MAMP 添加 PHP 的 pcntl 扩展.类 Unix 的环境都可以使用本方法安装,注意灵活变通. 安装: 下载和本地 PHP 版本对应的源码包,地址为: htt

Linux系统中为php添加pcntl扩展_php技巧

pcntl扩展可以支持php的多线程操作(仅限linux) 原本需要重新编译PHP的后面configrue提示加上--enable-pcntl 由于我的php是采用yum安装的,所以不能采用上面的方式 下面介绍一个php动态添加扩展的方式 phpize 1.首先看下 phpize命令 所在的目录  (ps:我的目录/usr/bin/phpize) 如果没有找到的话 执行安装 yum install php53_devel (ps:请注意自己的版本) 安装完毕后.会生成phpize命令   2.去

在MAMP环境下安装MySQLdb的方法_Linux

我的电脑上没有安装XAMPP,而是安装了MAMP PRO,其实两者都差不多,都是PHP+MySQL+Apache的集成环境,只是MAMP的GUI界面更华丽一些,但是也更复杂一些. 好了不说这些,说说问题吧.首先我使用如下命令来安装MySQLdb: pip install mysql-python但是错误提示,找不到mysql_config文件. 这个好办,找到这个文件添加到PATH路径下即可. find /Applications/MAMP -name mysql_config可以得到路径是:/

CentOS6.4 LAMP下给PHP添加Xdebug扩展步骤

 代码如下 复制代码 当前环境:CentOS6.4 64位 / PHP Version 5.3.3 安装依赖: [root@E /]# yum -y install gcc automake autoconf libtool make wget php-devel   下载 http://xdebug.org/files/ 最新版本:2.2.3 [root@E /]# cd /home/soft [root@E /]# wget install http://xdebug.org/files/x

centos环境下为php安装sysvmsg扩展

这里以sysvmsg为例子 1.进入php安装文件的目录 cd /home/soft/php-5.3.17/ext 这里我们需要安装sysvmsg,则 cd sysvmsg/ 再执行再执行 /usr/local/php/bin/phpize 会返回如下信息:(假设我的php安装在/usr/local/php这个目录) Configuring for: PHP Api Version:         20041225 Zend Module Api No:      20060613 Zend

云计算环境下架构Hadoop集群的数据分配方式

引言 云计算(Cloud Computing)是一种新兴的商业计算模型.它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力.存储空间和各种软件服务.云计算是网格计算(Grid Computing).分布式计算(Distributed Computing).并行计算(ParallelComputing).效用计算(Utility Computing).网络存储(Network Storage Technologies).虚拟化(Virtualization),负载均衡

PHP CLI模式下PCNTL扩展实现多进程服务的例子

PHP可通过PCNTL扩展实现进程控制,如进程创建,信号处理,进程中断判断等.但只能在CLI模式下操作. PCNTL的信号机制是基于 ticks 机制实现的.因此在使用信号相关函数时需要在前面添加declare(ticks = n) 语法结构. pcntl_alarm ( int $seconds )指定秒数后向进程发送一个 SIGALRM 信号 pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls ])给

公有云环境下应用程序的自动化部署与水平扩展问题

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1690176 先介绍了一下公有云计算环境下的一些特点,再根据这些特点探讨一下作为云计算用户而言,如何对应用程序做好自动化部署和水平扩展(弹性计算)的问题.阅读本文需要有一定的云计算知识.开发运维知识. 公有云环境的优势及其特点 公有云为企业用户或个人用户(以下统称为用户)可提供三种服务,基础服务.应用服务和运维服务.

关于可执行文件的扩展名有几种,它们分别在什么环境下工作?

问题描述 关于可执行文件的扩展名有几种,它们分别在什么环境下工作? 比如7.exe,我只知道它是在window xp 下工作,可上次又遇见过扩展名为bat的,所以想弄清楚这些. 解决方案 如果你指直接可以运行的文件,Windows 下主要的可执行文件其实只有 .exe,还有一个 .com 其实是DOS版的可执行文件.除了这两个,其它都是脚本,不算直接的可执行文件,要有相应的程序才能执行. 解决方案二: windows上面主要就是exe后缀了,代表了各种普通应用程序 bat是批处理文件,它由she