CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法


Posted in PHP onDecember 17, 2015

最近试了一下PHP7,在编译和支持MySQL上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程。简单来讲编译PHP7只需要3步:

1、./buildconf --force
2、./configure
3、make && make install

1、3步,都没啥好管的,configure是编译的关键,涉及到PHP对一些库的支持,这里我们使用最小的支持,包括MySQL:

curl
gd
fpm
mysqlnd

之所以把curl和gd拿来说,目的是要搞清楚,这些三方库在编译PHP之前得安装好,可以直接使用yum安装在默认位置,也可以编译安装到指定位置,yum安装后,编译时不用指定库的安装位置,关于安装这些库,可以搜索一下有很多。下面看看基本的configure

./configure --prefix=/apps/php/php7.0 --enable-mbstring --with-curl --with-gd --with-config-file-path=/apps/php/php7.0/etc/ --

enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd

PHP-FPM

关于fpm,相信不用多说,用它来支持PHP是一个比较好的选择,PHP5.3.3开始就已经内置了php-fpm,所以PHP7里当然也有,只需要--enable-fpm一下就可以了

php-fpm参数:

--start 启动
--stop 强制终止
--quit 平滑终止
--restart 重启
--reload 重新平滑加载php的php.ini
--logrotate 重新启用log文件

MySQL支持

重点讲一下这个,因为在它上面花了一点时间,不知道从哪一版本开始,PHP不在希望使用mysql的库来支持mysql的连接,启用了mysqlnd来支持,听说比libmysql要快很多,PHP5.x还可以使用libmysql,PHP7貌似已经取消了支持,编译都没有了--with-mysql参数,只支持--with-mysqli和--with-pdo-mysql,可以通过查看configure的参数来知道:

./configure -help | grep mysql

CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法

可以看到,PHP希望使用mysqlnd来支持MySQL,所以参数可以这样写:

--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd

mysqlnd是不需要mysql支持的,所以不用先安装好mysql一样可以编译通过,启动php-fpm,查看一下phpinfo,能看到mysqlnd和pdo_mysql表示php已经可以支持mysql了(这里用的是pdo,mysqli同理)

CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法

CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法

几个问题

编译问题:cc: Internal error: Killed (program cc1)

这个问题是第一次遇到,原来是我的阿里云服务器关掉了swap,内存不够用,就报了这个错。 解决办法很简单,configure时加上--disable-fileinfo参数就可以了。

PHP报找不到mysql服务

正如它所说,确实没找到,看看phpinfo中pdo_mysql.default_socket项

CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法

mysql.sock在哪里,再看一下mysql.sock的真正位置,使用命令:ps -ef|grep mysql查看:

CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法

明显不在一个位置上,我的正确位置是:/var/lib/mysql/mysql.sock

所以,修改一下php.ini,找到pdo_mysql.default_socket,改为你的实际位置,重启一下php-fpm,很不幸,虽然php.ini有这个配置,修改后,竟然不行,最好是编译的时候,指定mysql.socket的位置:

--with-mysql-sock=/var/lib/mysql/mysql.sock

如果还不行,可以到/tmp目录下建立一个mysql.sock的软链接:

ln -s /var/lib/mysql/mysql.sock mysql.sock

再重启一次php-fpm,相信已经正常运行了。如果需要PHP支持的库更多,可以再次编译,在configure时把需要的支持加上,就是--with-xxx这中,记得如果是三方的,要先安装这些库才行哦。

PHP 相关文章推荐
php替换超长文本中的特殊字符的函数代码
May 22 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
Yii2框架类自动加载机制实例分析
May 02 PHP
实例解析php的数据类型
Oct 24 PHP
PHP实现的数据对象映射模式详解
Mar 20 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 PHP
通过PHP简单实例介绍文件上传
Dec 16 #PHP
PHP上传文件参考配置大文件上传
Dec 16 #PHP
谈谈 PHP7新增功能
Dec 16 #PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 #PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 #PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 #PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 #PHP
You might like
php 设计模式之 工厂模式
2008/12/19 PHP
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
Android面试宝典
2013/08/06 面试题
教师通用专业自荐书范文
2014/02/11 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
揭牌仪式主持词
2014/03/19 职场文书
高三学生评语大全
2014/04/25 职场文书
社会实践活动总结报告
2014/04/29 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
行政文员岗位职责
2015/02/04 职场文书