PHP扩展库安装遇到的问题总结
2017-02-13 16:13
507 查看
首先来说明下遇到的问题,公司用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
查看指定PHP版本:
1
查看PHP已安装的扩展
1
查看服务器上某个版本的PHP已安装的扩展
1
查看php.ini的位置
如果PHP是通过yum命令安装的,则扩展也可以通过yum安装
依次执行以下三步,中间要求输入内容的都执行“回车”:
2
3
1
2
3
以上步骤中,需要安装pecl,如果没有,以下为安装方法:
2
3
4
5
6
1
2
3
4
5
6
常用的扩展库
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
涉及到的模块有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版本:
php -v1
1
查看指定PHP版本:
/usr/local/php/bin/php -v1
1
查看PHP已安装的扩展
php -m1
1
查看服务器上某个版本的PHP已安装的扩展
/usr/local/php/bin/php -m1
1
查看php.ini的位置
/usr/local/php/bin/php --ini
安装扩展
方法一:使用yum命令安装
如果PHP是通过yum命令安装的,则扩展也可以通过yum安装 依次执行以下三步,中间要求输入内容的都执行“回车”:
1、命令行运行yum install libevent-devel 2、命令行运行pecl install channel://pecl.php.net/libevent-0.1.0 3、命令行运行echo extension=libevent.so > /etc/php.d/libevent.ini1
2
3
1
2
3
以上步骤中,需要安装pecl,如果没有,以下为安装方法:
//打开对应安装版本目录 cd /usr/local/php/bin/ //curl下载 curl -o go-pear.php http://pear.php.net/go-pear.phar //安装 php go-pear.php1
2
3
4
5
6
1
2
3
4
5
6
方法二:phpize安装
//下载libevent扩展文件压缩包(在当前系统哪个目录下载随意) ~# wget http://pecl.php.net/get/libevent-0.1.0.tgz //解压文件 ~# tar -zxvf libevent-0.1.0.tgz //进入源码目录 ~# cd libevent-0.1.0/ //运行phpize命令,写全phpize的路径 ~# /usr/local/php/bin/phpize //运行configure命令,配置时 要将php-config的路径附上 ~# ./configure --with-php-config=/usr/local/php/bin/php-config //运行make命令 ~# make //测试编译安装 ~# make test //正式编译安装 ~# sudo make install //修改php.ini,结尾加入:extension=libevent.so //重启对应的php-fpm
常用的扩展库
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
相关文章推荐
- mac安装lnmp环境中php扩展遇到的问题
- linux中centros6.7安装php5.6,httpd-2.2.19(web产品化)遇到的问题总结
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
- 安装php的tokyo_tyrant扩展时遇到的问题,以及解决方法
- linux下php安装及连接oracle遇到问题总结
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
- PHP中安装APC扩展遇到问题
- PHP中安装APC扩展遇到问题
- 总结一下PHP扩展开发中遇到的问题
- Ubuntu 安装PHP的LDAP扩展时遇到的问题以及解决方案
- PHP中安装APC扩展遇到问题
- php安装扩展库遇到的问题
- 安装iis和php环境时遇到的一些问题总结
- centos7安装php5.6.30可能遇到的问题总结
- 总结一下PHP扩展开发中遇到的问题
- Team Foundation Server 安装时遇到的问题与解决方法总结(转)
- Fedora 15 降级安装GCC-4.5.3 全过程以及遇到的问题和解决办法总结
- SharePoint 2010 卸载之后重装遇到的问题总结:Sharepoint 2010正在进行的安装与之前安装的micrsoft offince 2010 server 产品冲突
- php手动加载模块遇到的问题总结
- CentOS(x86_64)下PHP安装memcache扩展问题解决方法分享