代码已经写完了,现在要部署到服务器上。服务器中运行 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,结果是失败的。
我按照文档http://doc3.workerman.net/315304
附录,安装扩展,得到一个pcntl.so,按照上面的方法配置也是失败的。
php -v看下,是不是装了多个php版本
是的,这都被你知道了!!!
系统环境是从腾讯云市场里装的
操作系统里面装了PHP7.0.0和PHP5.5、5.6...
我现在用的是PHP7
奇怪的是系统里只有一个php.ini文件。
运行 php --ini 查找php.ini文件路径及位置
[root@VM_0_7_centos /]# 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)
非常感谢,/etc/php.ini
[root@VM_0_7_centos etc]# find / -name php.ini
/etc/php.ini
是不是这样的?多个PHP版本,须编译安装在不同路径,他的扩展也要对应在不同的路径!!!
关键是这个服务器是从腾讯云市场上下载下来的,我不知道config的路径应该设置在什么地方啊
每一个PHP发行版都有自己的二进制路径, 查找配置的正确姿势是: /path/to/php --ini
这个定位出来的 php.ini 就是对应PHP发行版的配置文件
[root@VM_0_7_centos bin]# ./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)
显示是空的
经过了一下午的折腾
pcntl是有这个服务的,可是检查配置的时候还是失败的。
我已经搞定了,谢谢大家。
我说一下解决方法
1,问题
1.1,环境centos6.5,nginx,php(多版本),mysql
1.2,使用部署服务端,workerman,测试环境失败
2,解决方法
2.1,看下版本
2.2 到官网(http://php.net/releases/)下载 7.0.0
2.3 解压
2.4 进入源码中的ext/pcntl目录
2.5 运行 phpize 命令
2.6 配置
2.7 编译安装
2.8 检查一下当前版本的位置
发现这个php.ini文件是没有的
那么要从/etc/php.ini拷贝到/data/home/server/php-7.0.0/etc
2.9 在两个php.ini文件中都添加
3所有的配置完成了,重启php-fpm和nginx
先用下面的命令找到php-fpm的进程,14304
用下面的命令重启
检查一下ngnix配置是否正确
重启nginx
4,最后查看结果