首先来说明下遇到的问题,公司用php做游戏服务器开发语言,当然还用了php传说中不擅长的长连接(个人觉得开发效率高于机器成本,现在分布式网络集群时代,没必要省那么点钱),我们涉及到php5.3版本升级到5.6的时候,有的php扩展不能用了,蛋疼;
涉及到的模块有libevent,对,就是它,这是干吗用的呢?应为我们是长连接,必然是高并发的io密集型应用程序,所以,用libevent做io事件处理模块,性能和效率提高是指数级别的,所以,这个模块一定要安装的(研究wokerman的小伙伴自己去官网看吧,那个社区很健全的);
废话这么多,记录笔记是为了以后自己看,简明比较好;
1:卸载就的模块不干净(我原来服务器安装的是5.3版本的php,现在新项目打算升级到5.6,不用7以上的版本,是怕除了问题没地方哭);
解决办法:卸载php rpm -e 先 rpm -qa 找出所有 //这方法卸载不干净,得把配置文件一块移除才行
2:安装目录在哪里呢?好多时候我们编译安装软件的时候,习惯./configure,然后参数都用的默认的,这个习惯不好,在做项目管理的时候,特别在做自动化运维管理的时候,我们最好把一些基础的配置信息整理下,方便我们日后查问题,例如:日志放到哪里,扩展模块放哪里,这些基础的往往让我们日后抓狂(为什么呢?设想下,系统安装了默认的nginx,你自己部署服务器的时候再次安装了,遇到问题查找时候潜意识的看老的nginx日志目录,当然你看不到任何信息,你会纠结,为嘛我没有报错日志,是哪出的问题呢?吃一堑长一智,自己蹲墙角哭去吧);言归正传,遇到以上问题,自然收索文件是linux使用者必须掌握的基础技能,自己去搜索吧;
3:安装目录一般在 /usr/lib64/php/modues
配置文件在/etc/php.d/扩展配置echo extension=libevent.so > /etc/php.d/libevent.ini
在这里我遇到个问题,就是libevent库依赖socket扩展库,还有就是编译的时候socket库必须在libevent库前加载,可以在libevent库模块配置文件前加上socket库就好了,当然了,你的socket库的配置文件里需要注释掉,不然会编译报错(一个模块只能被加载一次的意思);
伯来一些方法
查看PHP版本:
- 1
- 1
查看指定PHP版本:
- 1
- 1
查看PHP已安装的扩展
- 1
- 1
查看服务器上某个版本的PHP已安装的扩展
- 1
- 1
查看php.ini的位置
安装扩展
方法一:使用yum命令安装
如果PHP是通过yum命令安装的,则扩展也可以通过yum安装
依次执行以下三步,中间要求输入内容的都执行“回车”:
- 1
- 2
- 3
- 1
- 2
- 3
以上步骤中,需要安装pecl,如果没有,以下为安装方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
方法二:phpize安装
常用的扩展库
yum install -y php php-JsonSchema php-mysqli php-cli php-process php-devel php-fpm php-gd php-mysql php-odbc php-mcrypt php-pear php-xml libevent-devel php-pecl-memcache