我现在的环境是wdcp多php版本,昨天想装event扩展,参照了这个http://doc.workerman.net/install/install.html
wdcp的php都是带pcntl和posix的,昨天没想太多就按你们前面说的运行了yum install php-process,这个是不是又给我装了个5.3.3的php,也看不出是安装在了哪里
# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed: /etc/php.d/curl.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/json.ini,
/etc/php.d/phar.ini,
/etc/php.d/posix.ini,
/etc/php.d/sysvmsg.ini,
/etc/php.d/sysvsem.ini,
/etc/php.d/sysvshm.ini,
/etc/php.d/zip.ini
echo $PATH的结果:
/usr/java/jdk1.8.0_111/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/www/wdlinux/mysql/bin:/root/bin
现在我所有GatewayWorker项目都变成默认用这个什么扩展都缺的5.3.3,各种报错。这个怎么解决啊?能卸载掉这个啊?
修改.bashrc文件在PATH加上wdsp的php路径后GatewayWorker就没报错了,但是crontab执行的sh文件里的php命令还是不正常,感觉执行的还是5.3的
现在php -v查了是5.6,但rpm -qa|grep php查到的包还是5.3的
# php -v
PHP 5.6.30 (cli) (built: Jun 5 2017 12:44:58)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
# rpm -qa|grep php
php-common-5.3.3-49.el6.x86_64
php-cli-5.3.3-49.el6.x86_64
php-devel-5.3.3-49.el6.x86_64
php-process-5.3.3-49.el6.x86_64
php-5.3.3-49.el6.x86_64
php-pear-1.9.4-5.el6.noarch
这个5.3的php该怎么处理,应该是装你们说的php-process带入的吧?现在我改了代码想要重启GatewayWorker都不敢,怕停止了待会重新启动就出问题,那5.3能不能卸载,怎么卸载?
重要!!根据你的描述,建议执行操作前自己在测试环境先 dry run 下:
1、首先 5.3 的可以卸载, 卸载方法就是 rpm -e xxxxx 【XXXX就是你上面 rpm -qa|grep php 列出来的那堆包名】
2、crontab 里的php 不管什么时候都强烈建议使用全路径php,即 /path/to/php /do/something/script 等 【全路径PHP就是显式的调用特定版本的PHP,特别适合多版本PHP环境混乱使用的问题】
3、执行命令: which php 【多版本PHP,先用这个命令确定你裸执行的php 到底是哪个路径下哪个版本的PHP】
谢谢,很有帮助。还有个问题,event扩展装了后,一把extension=event.so加到php.ini文件就会出现这错误:
php: symbol lookup error: /www/wdlinux/apache_php-5.5.38/lib/php/extensions/no-debug-non-zts-20121212/event.so: undefined symbol: event_set_fatal_callback
这个该怎么解决啊?
感觉像是libevent库版本的问题,换个较新的libevent库版本试试看;如果还是不行,那就尝试替换升级较高版本的 event 扩展。