开发者社区> 问答> 正文

在CentOS7 PHP中pcntl拓展如何安装

我安装的是阿里云的一键集成环境,发现很多拓展都没有。求大神指教

展开
收起
睿学 2016-10-03 11:06:49 5823 0
2 条回答
写回答
取消 提交回答
  • 解决方案工程师,负责为企业规划上云迁移方案和云上架构设计,在网站建设开发和云计算领域有多年经验,专注于Linux平台的系统维护以及应用部署。致力于以场景化的方式让云计算,用更加通俗易懂的方式让更多人体验云计算,让云端的计算更质朴的落地。
    Re:回 1楼(梦丫头) 的帖子
    1、首先看下 phpize命令 所在的目录  (ps:我的目录/usr/bin/phpize)
    如果没有找到的话 执行安装
    yum install php53_devel   (ps:请注意自己的版本)
    安装完毕后。会生成phpize命令

    " php53_devel"  写错了
    2016-10-03 18:38:31
    赞同 展开评论 打赏
  • 论坛总版主
    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
    2016-10-03 13:16:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载