为了账号安全,请及时绑定邮箱和手机立即绑定

php添加pcntl扩展(Linux)

标签:
PHP

pcntl扩展可以支持php的多线程操作(仅限linux系统)

加载 pcntl 有两种方式

一种重新编译安装,在编译时加,configrue提示加上--enable-pcntl

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-pcntl


另一种格外挂载

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


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


2、去php.net下载相应版本的php源文件

http://php.net/releases/index.php

咱们以php-5.3.17 为例吧,解压后,进入相应的模块下
cd /php-5.3.17/ext/pcntl
#先执行phpize
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config   (请正确的指定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目录里

cd /root/php-5.3.17/ext/pcntl/modules

ls -l pcntl.so
-rwxr-xr-x 1 root root 82375 4月   1 11:38 pcntl.so


编辑/etc/php.ini,加入
extension=pcntl.so


4、重启apache和php
service httpd restart

/etc/init.d/php-fpm restart


5.进行测试是不是安装成功

在网页目录写一个php首页文件如下

<?php
    echo pcntl_fork();
?>

输出:23165 证明安装成功

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消