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 相关文章推荐
Joomla下利用configuration.php存储简单数据
May 19 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
浅谈php的优缺点
Jul 14 PHP
PHP验证码生成原理和实现
Jan 24 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
php简单检测404页面的方法示例
Aug 23 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
制作美丽的拉花
2021/03/03 冲泡冲煮
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
教大家使用Python SqlAlchemy
2016/02/12 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
对python周期性定时器的示例详解
2019/02/19 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
正规的求职信范文分享
2013/12/11 职场文书
闭幕式主持词
2014/04/02 职场文书
中职生求职信
2014/07/01 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
统计员岗位职责范本
2015/04/14 职场文书
圣诞晚会主持词
2015/07/01 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
JavaScript执行机制详细介绍
2021/12/06 Javascript