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

相关文章

web目录下不应该存在多余的程序(安全考虑)

虽然都会在这些程序前增加一些判断和限制。但除了库文件,还有临时文件,模板文件等这些文件本来就不应该被人直接通过 web 访问到的。无论从安全性还是代码管理方面,把不能访问的文件存放到we...

PHP按指定键值对二维数组进行排序的方法

本文实例讲述了PHP按指定键值对二维数组进行排序的方法。分享给大家供大家参考,具体如下: 问题: 有数组:复制代码 代码如下:array(0=>array('id'=>1,'...

joomla jce editor 解决上传中文名文件失败问题

不论是JCE还是CKEDITOR,都没解决中文名文件的问题,要么上传失败,要么传上去了中文名不能被web访问。相比之下,JCE更加人性化,比如文件上传后默认被选中,不需用户在那么小的弹出...

利用PHP内置SERVER开启web服务(本地开发使用)

利用PHP内置SERVER开启web服务(本地开发使用)

PHP 5.4.0起, CLI SAPI 提供了一个内置的Web服务器,这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境。URI请求会被发送到PHP所在的的工作目录(Wo...

php Redis函数用法实例总结【附php连接redis单例类】

本文实例总结了php Redis函数用法。分享给大家供大家参考,具体如下: 一直在拿PHP使用Redis,但是总感觉不牢靠,索性借这个时间空余一气呵成, 把PHP中所有操作到的Redis...