加载 pcntl 多进程

加载 pcntl 有两种方式
一种重新编译安装,在编译时加  --enable-pcntl
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-pcntl


另一种格外挂载
首先进入到安装包存放目录
# cd /usr/local/src

解压缩安装包
# tar -zxvf php-5.4.16.tar.gz

进入解压缩出来的源码包文件夹中存放 pcntl 的地方
# cd /usr/local/src/php-5.4.16/ext/pcntl

利用已装好的 php 安装目录中 bin 文件夹的 phpize 进行模块扩展命令
# /usr/local/php/bin/phpize

编译,将安装包内的 pcntl 与已安装好的 php 关联,/usr/local/php 为已安装的php路径
# ./configure --with-php-config=/usr/local/php/bin/php-config

# make

# make install

安装后会提示 安装后文件所在位置
这里是 /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

然后修改php.ini文件
# vi /usr/local/php/lib/php.ini

在最后一行添加 extension = pcntl.so

按Esc输入:wq 保存退出




pcntl函数一定要在CGI模式下运行
打开CGI模式方法:
修改apache配置文件
# vi /usr/local/apache/conf/httpd.conf

注释掉配置文件中的
LoadModule php5_module modules/libphp5.so
为
#LoadModule php5_module modules/libphp5.so

并在最后一行添加
Action application/x-httpd-php /cgi-bin/php-cgi
按Esc输入:wq 保存退出

如果apache安装目录下的 cgi-bin 文件夹中没有 php-cgi 文件,则从 php 安装目录中的 bin 文件夹下复制过来
# cp /usr/local/php/bin/php-cgi /usr/local/apache/cgi-bin

在CGI 模式下,输出网页时会多出一些额外的内容,为了不显示这些内容修改 php.ini
# vi /usr/local/php/lib/php.ini
修改
expose_php = On
为
expose_php = Off
按Esc输入:wq 保存退出

重启 apache
# /usr/local/apache/bin/apachectl -k restart




在一个php文件中输出
<?php
echo pcntl_fork();
?>
查看结果如出现数字则安装成功,数字表示子进程id


执行 /usr/local/php/bin/phpize 时如遇到如下错误
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

则安装下面两个
yum install m4
yum install autoconf
原文地址:https://www.cnblogs.com/dreamhome/p/3221069.html