为php添加pcntl扩展,多线程
前言:
pcntl 介绍
pcntl扩展可以支持 PHP 的多线程操作。(非Unix类系统不支持此模块)
phpize 介绍
phpize 可以用来给 PHP 动态的添加扩展。比如编译 PHP 时忘记添加某扩展,后来想添加该扩展,即可以使用 phpize 动态的添加该扩展。
本文将介绍如何使用 phpize 给 Mac下的集成环境 MAMP 添加 PHP 的 pcntl 扩展。类 Unix 的环境都可以使用本方法安装,注意灵活变通。
php添加pcntl扩展(Linux)
php添加 pcntl 扩展
pcntl扩展可以支持php的多线程操作(仅限linux)
原本需要重新编译PHP的后面configrue提示加上--enable-pcnt
由于我的php是采用yum安装的,所以不能采用上面的方式
下面介绍一个php动态添加扩展的方式 phpize
1、首先看下 phpize命令 所在的目录 (ps:我的目录/usr/bin/phpize)
如果没有找到的话 执行安装
yum install php53_devel (ps:请注意自己的版本)
安装完毕后。会生成phpize命令 (也可以 whereis phpize 命令查看)
2、去php.net下载相应版本的php源文件
咱们以php-5.3.17 为例吧,解压后,进入相应的模块下
cd ext/pcntl
#先执行phpize
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config (ps:请正确的指定php-config的目录)
#编译、安装
make && make install
这时候出了一个错误
./configure编译正常,但make出错
error: ‘PHP_FE_END’ undeclared here (not in a function)
解决方法:
源代码有错误,进入php-5.3.17目录
sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/*.c
sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./ext/**/*.c
再重新make && make install
3、编译完毕后会生成了一个 pcntl.so的文件。在php的model目录里
编辑/etc/php.ini,加入
extension=pcntl.so
4、重启apache
service httpd restart
5、测试是否安装成功
<?php
echo pcntl_fork();
?>
输出:23165
为php添加pcntl扩展,多线程的更多相关文章
- MAMP 环境下为 php 添加 pcntl 扩展
前言: pcntl 介绍 pcntl 扩展可以支持 PHP 的多线程操作.(非Unix类系统不支持此模块) phpize 介绍 phpize 可以用来给 PHP 动态的添加扩展.比如编译 PHP 时忘 ...
- php添加pcntl扩展(Linux)
pcntl扩展可以支持php的多线程操作(仅限linux)原本需要重新编译PHP的后面configrue提示加上--enable-pcntl 由于我的php是采用yum安装的,所以不能采用上面的方式下 ...
- Linux系统中为php添加pcntl扩展的方法
1.首先看下 phpize命令 所在的目录 (ps:我的目录/usr/bin/phpize)如果没有找到的话 执行安装yum install php53_devel (ps:请注意自己的版本) 安装 ...
- 可扩展多线程异步Socket服务器框架EMTASS 2.0 (转自:http://blog.csdn.net/hulihui)
可扩展多线程异步Socket服务器框架EMTASS 2.0 (转自:http://blog.csdn.net/hulihui) 0 前言 >>[前言].[第1节].[第2节].[第3节]. ...
- linux下的redis安装以及php添加redis扩展
一.redis的安装 win版本详见: 下面是linux版本的安装步骤: step1.下载 http://redis.io/download下载完后直接make然后make install,注意sud ...
- phpize 动态添加 PHP 扩展的错误及解决方案
使用phpize 动态添加 PHP 扩展是开发中经常需要做的事情,但是在 macOS 中,首次使用该功能必然会碰到一些错误,本文列出了这些错误的解决方法. 问题一: 执行 phpize 报错如下: $ ...
- 在Linux环境下给php添加mbstring扩展
1,今天在开发项目的时候使用了一个php函数(mb_strcut),运行代码时候提示报错"call to undefind function mb_strcut",首先检查下函数名 ...
- 在 IIS MIME 类型中添加 md 扩展名
最近在了解 Knowledge Base (知识库)的内容,对两个平台比较感兴趣,一个是 Raneto,一个是 MDwiki,两者都是使用md文件作为内容存储. 需要注意的是,使用IIS部署网站后,需 ...
- centos6.5 gsoap安装过程+ php添加soap扩展
参考博客: CentOS编译安装gSOAP Linux C实现webservice调用 安装gsoap流程 里面提到make时可能碰到的问题 还没有用到 1.从官网下载最新的版本:http://so ...
随机推荐
- 开发框架 springBoot
1.多个环境的配置文件 在application.yml 中配置需要调用的配置文件 spring: profiles: active: dev 运行方式的,先运行application.yml 再根据 ...
- PHP获取不带后缀的文件名方法
$filename = "test.txt"; $houzhui = substr(strrchr($filename, '.'), 1); $result = basename( ...
- Python的网络编程[3] -> BOOTP 协议[0] -> BOOTP 的基本理论
BOOTP协议 / BOOTP Protocol 目录 基本理论 BOOTP 与 DHCP 通信流程 数据报文格式 报文加解码实现 1. 基本理论 / Basic Theory BOOTP(Boots ...
- [POI2014]Freight
题目大意: 有两个城镇$A$和$B$,有$n(n\le10^6)$辆车从$A$地出发前往$B$再返回$A$地.两地之间的行驶时间为$s(s\le10^9)$,每辆车从$A$地出发的最早时间是$t_i( ...
- ARM常用汇编指令介绍
b 跳转指令(跳转范围为32Mb) bl 带返回地址的跳转,指令自动将下一条指令的地址复制到R14寄存器,然后跳转到指定地址去执行,执行完后返回到下一条指令处执行 pc 寄存器R1 ...
- Orchard FAQ
Orchard学习视频已登录百度传课: http://www.chuanke.com/3027295-124882.html 问:Orchard用VS重新生成后为什么那么大? 答:因为每个模块的bin ...
- 设计模式之享元模式(PHP实现)
github地址:https://github.com/ZQCard/design_pattern /** * 减少创建对象的数量,以减少内存占用和提高性能.这种类型的设计模式属于结构型模式, * 它 ...
- pycharm批量清楚pyc、$py.class文件
By default, the .pyc and $py.class files are ignored, and thus are not visible in the Project tool w ...
- react.js Warning: Failed form propType: You provided a value prop to a form field without an onChange handler. This will render a read-only field.
错误信息: eact.js:20483 Warning: Failed form propType: You provided a value prop to a form field without ...
- ElasticSearch _xpack角色管理
权限管理可以通过kibana的Management界面进行,本篇主要介绍的是通过命令进行,角色API使您能够在本机域中添加,删除和检索角色. 要使用此API,您必须至少具有manage_securit ...