php添加pcntl扩展 问题及解决方法


pcntl扩展可以支持php的多线程操作.
原本需要重新编译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

  

 

二、测试是否安装成功

<?php
echo pcntl_fork();
?>

  输出

     23165

 

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM