部署到服务器,显示找不到pcntl扩展,而且pcntl扩展安装一直失败

0

代码已经写完了,现在要部署到服务器上。服务器中运行 php start.php start.php
Please install pcntl extension. See http://doc3.workerman.net/appendices/install-extension.html
于是参考文档安装这些插件。
1,安装php-process
yum install php-process
2,修改php.ini,
extension=pcntl.so
extension=/data/home/php-7.0.0/ext/pcntl/modules/pcntl.so
3,重启php-fpm
ps aux|grep php-fpm
kill -USR2 42891
4,重启nginx服务器
./nginx -t
./nginx
5,结果是失败的。 

已邀请:

智佳思远

赞同来自: 且听风吟

运行 php --ini 查找php.ini文件路径及位置

且听风吟

赞同来自:

我按照文档http://doc3.workerman.net/315304
附录,安装扩展,得到一个pcntl.so,按照上面的方法配置也是失败的。

智佳思远

赞同来自:

php -v看下,是不是装了多个php版本

且听风吟

赞同来自:

是的,这都被你知道了!!!
系统环境是从腾讯云市场里装的
操作系统里面装了PHP7.0.0和PHP5.5、5.6...
我现在用的是PHP7
奇怪的是系统里只有一个php.ini文件。

且听风吟

赞同来自:

非常感谢,/etc/php.ini

且听风吟

赞同来自:

是不是这样的?多个PHP版本,须编译安装在不同路径,他的扩展也要对应在不同的路径!!!
 

且听风吟

赞同来自:

关键是这个服务器是从腾讯云市场上下载下来的,我不知道config的路径应该设置在什么地方啊

且听风吟

赞同来自:

经过了一下午的折腾


# ps -aux | grep pcntl
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root     32692  0.0  0.0   6384   700 pts/0    S+   17:19   0:00 grep pcntl

pcntl是有这个服务的,可是检查配置的时候还是失败的。


# curl -Ss http://www.workerman.net/check.php | php
PHP Version >= 5.3.3                   
Extension pcntl check                  
Extension posix check               

且听风吟

赞同来自:

我已经搞定了,谢谢大家。

且听风吟

赞同来自:

我说一下解决方法
1,问题
1.1,环境centos6.5,nginx,php(多版本),mysql
1.2,使用部署服务端,workerman,测试环境失败


# curl -Ss http://www.workerman.net/check.php | php
PHP Version >= 5.3.3                   
Extension pcntl check                  
Extension posix check                 

2,解决方法
2.1,看下版本


# php -v
PHP 7.0.0 (cli) (built: Dec  4 2015 23:12:58) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies,

2.2 到官网(http://php.net/releases/)下载 7.0.0
2.3 解压


tar -zxvf   php-7.0.0.tar.gz

2.4 进入源码中的ext/pcntl目录


cd php-7.0.0/ext/pcntl/

2.5 运行 phpize 命令


phpize

2.6  配置


./configure

2.7 编译安装


make && make install

2.8 检查一下当前版本的位置


# ./php --ini
Configuration File (php.ini) Path: /data/home/server/php-7.0.0/etc
Loaded Configuration File: (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)

发现这个php.ini文件是没有的
那么要从/etc/php.ini拷贝到/data/home/server/php-7.0.0/etc


cp /etc/php.ini  /data/home/server/php-7.0.0/etc

2.9 在两个php.ini文件中都添加


extension=pcntl.so

3所有的配置完成了,重启php-fpm和nginx
先用下面的命令找到php-fpm的进程,14304


# ps aux |grep php-fpm
root     14304  0.0  0.0 122488  6516 ?        Ss   18:16   0:00 php-fpm: master process (/data/home/server/php-7.0.0/etc/php-fpm.conf)
www      14305  0.0  0.0 138960 16632 ?        S    18:16   0:03 php-fpm: pool www                 
www      14306  0.0  0.0 138964 16684 ?        S    18:16   0:03 php-fpm: pool www    

用下面的命令重启


kill -USR2 14304

检查一下ngnix配置是否正确


ngnix -t

重启nginx


nginx -s reload

 
4,最后查看结果


# curl -Ss http://www.workerman.net/check.php | php
PHP Version >= 5.3.3                   
Extension pcntl check                  
Extension posix check                  

要回复问题请先登录注册