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 和 COM
Oct 09 PHP
php过滤敏感词的示例
Mar 31 PHP
初识PHP
Sep 28 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
php实现paypal 授权登录
May 28 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 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+xslt在windows平台上
2006/10/09 PHP
完美解决PHP中文乱码
2009/11/26 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
django迁移文件migrations的实现
2020/03/31 Python
django rest framework使用django-filter用法
2020/07/15 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
分公司总经理岗位职责
2014/07/30 职场文书
医者仁心观后感
2015/06/17 职场文书
2015年教师节感言
2015/08/03 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
担保书怎么写 ?
2019/04/22 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
如何在Python中妥善使用进度条详解
2022/04/05 Python