Linux系统中为php添加pcntl扩展

yipeiwu_com6年前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、去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 SHA1withRSA加密生成签名及验签

最近公司对接XX第三方支付平台的代付业务,由于对方公司只有JAVA的demo,所以只能根据文档自己整合PHP的签名加密,网上找过几个方法,踩到各种各样的坑,还好最后算是搞定了,话不多说,...

php获取远程文件大小

本文实例讲述了php获取远程文件大小的方法,分享给大家供大家参考。具体实现方法如下: /* **功能:获取远程文件的大小,返回值的单位是:字节 */ function get_...

PHP中array_keys和array_unique函数源码的分析

性能分析 从运行性能上分析,看看下面的测试代码: $test=array(); for($run=0; $run<10000; $run++) $test[]=rand(0,1...

php多个字符串替换成同一个的解决方法

复制代码 代码如下:<?php$name = 'Today 3? , very/ cold';$name = strtolower($name);//$name = preg_re...

PHP Global定义全局变量使用说明

很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。比如下面这样:复制代码 代码如下:$test = 123; abc(); //这里什么都不...