zoukankan      html  css  js  c++  java
  • 为php添加pcntl扩展,多线程

    前言:

    pcntl 介绍

    pcntl扩展可以支持 PHP 的多线程操作。(非Unix类系统不支持此模块)

    phpize 介绍

    phpize 可以用来给 PHP 动态的添加扩展。比如编译 PHP 时忘记添加某扩展,后来想添加该扩展,即可以使用 phpize 动态的添加该扩展。

    本文将介绍如何使用 phpize 给 Mac下的集成环境 MAMP 添加 PHP 的 pcntl 扩展。类 Unix 的环境都可以使用本方法安装,注意灵活变通。

    php添加pcntl扩展(Linux)
    php添加 pcntl 扩展

    pcntl扩展可以支持php的多线程操作(仅限linux)
    原本需要重新编译PHP的后面configrue提示加上--enable-pcnt

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

    1、首先看下 phpize命令 所在的目录 (ps:我的目录/usr/bin/phpize)
    如果没有找到的话 执行安装

    yum install php53_devel (ps:请注意自己的版本)

    安装完毕后。会生成phpize命令  (也可以 whereis 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

  • 相关阅读:
    Linux共享wifi给Android手机
    史上最简单的Hibernate入门简单介绍
    TRIZ系列-创新原理-29-气动或液压结构原理
    使用GDI+进行图片处理时要注意的问题
    触发器系列(2) DataTrigger
    FizzBuzzWhizz问题python解法
    实现二值图像连通区标记之区域生长法
    《Java并发编程实战》第四章 对象的组合 读书笔记
    XCL-Charts画曲线图(CurveChart) 例2
    oracle中imp命令具体解释
  • 原文地址:https://www.cnblogs.com/fps2tao/p/8990325.html
Copyright © 2011-2022 走看看