文档章节

php添加pcntl扩展(Linux)

Junn
 Junn
发布于 2013/09/02 15:07
字数 393
阅读 16655
收藏 8

pcntl扩展可以支持php的多线程操作(仅限linux)
原本需要重新编译PHP的后面configrue提示加上--enable-pcntl

由于我的php是采用yum安装的,所以不能采用上面的方式
下面介绍一个php动态添加扩展的方式 phpize

1、首先看下 phpize命令 所在的目录  (ps:我的目录/usr/bin/phpize)
如果没有找到的话 执行安装
yum install php53_devel   (ps:请注意自己的版本)
安装完毕后。会生成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

另附:

pcntl扩展可以支持php的多线程操作.
原本需要重新编译PHP的后面configrue提示加上--enable-pcntl
为了省事直接编译算鸟.
# cd /usr/local/src/php-5.2.6/ext/pcntl
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
pcntl.so  加到php.ini中OK

© 著作权归作者所有

共有 人打赏支持
上一篇: PHP多进程实践
下一篇: PHP多进程编程
Junn
粉丝 145
博文 412
码字总数 288918
作品 0
海淀
高级程序员
私信 提问
加载中

评论(1)

big_cat
big_cat
嗯?通篇pcntl都是和“多线程”搭配在一起,这样好么
yuli/multi-process-pcntl

个人声明 作者:于立(wx/yulichenr) 敬告:联系我,请注明来源和来意 本人开发有很多年了,但是很少整理分享,如今趁着清闲就为大家服务了,希望更多地体验到编程带来的快乐。 职场多年下来...

yuli
2017/11/30
0
0
phpize源码安装php扩展

4、进入源码中的ext/pcntl目录 5、运行 命令 6、运行 命令 7、运行 命令 8、运 行 命令 9、配置ini文件 通过运行 查找php.ini文件位置,然后在文件中添加 说明: 此方法一般用来安装PHP自带的...

bengozhong
10/19
0
0
轻量级Socket服务--MeepoPS

MeepoPS是Meepo PHP Socket的缩写。旨在提供高效稳定的由纯PHP开发的多进程SocketService。 MeepoPS可以轻松构建在线实时聊天,即时游戏,视频流媒体播放,RPC,实时监控,以及原本使用HTTP的...

李轩Lane
2016/05/31
7.7K
9
PHP安装多进程pcntl扩展

# mkdir php # cd php # apt-get source php5 # cd php5-(WHATEVER_RELEASE)/ext/pcntl # phpize # ./configure (注一) # make # make install 7.复制pcntl/module文件夹下的pcntl.so文件到自......

hejunyi1204
2014/10/22
0
0
php workerman 异步通讯框架

提示workerman只是一个代码包,如果php环境满足要求,下载后即可使用,实际上没有安装过程。 workerman对php环境的要求是: 1、php>=5.3.3,可以运行命令 php -v 查看版本 2、Linux系统要求p...

bengozhong
2015/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

&和&&,==和equals的区别

&和&& 相同点:都可以表示逻辑与(and),当运算符两边的结果都为true时,结果才为true,只要有一边为false,结果就为false。 不同点:&&还有短路的作用,即如果第一个表达式的结果为false,就...

森林之下
11分钟前
0
0
我和 Spring 大神的一天

摘要: 先介绍一下故事的5位主人公。 Josh Long 龙之春:Spring 技术布道师,撰写过5部著作,录制过3部畅销的培训视频,是一位开源软件贡献者。 Spencer Gibb:Spring 技术布道师,Spring Cl...

阿里云官方博客
13分钟前
0
0
【Zookeeper】源码分析目录(保存)

https://www.cnblogs.com/leesf456/p/6518040.html

Java搬砖工程师
17分钟前
0
0
vue-cli图片路径使用

https://www.cnblogs.com/minigrasshopper/p/8011630.html

LM_Mike
17分钟前
0
0
前方高能,重要通知!明珠不蒙尘,有才你就来。

11月开源众包服务之星计划--开发商招募正式开启了! 您还是否在为能接更多的订单而操碎了心? 开源众包即将迎来三周年华诞,重磅上线服务之星品牌计划。你有强大的技术实力?你有丰富的案例经...

开源中国众包平台
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部