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调用数据库的存贮过程
Oct 09 PHP
php模板之Phpbean的目录结构
Jan 10 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
使用PHP curl模拟浏览器抓取网站信息
Oct 28 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
Yii2框架使用计划任务的方法
May 25 PHP
微信支付开发交易通知实例
Jul 12 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
laravel model 两表联查示例
Oct 24 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 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个人网站架设连环讲(四)
2006/10/09 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
PHP 获取远程文件内容的函数代码
2010/03/24 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python33 urllib2使用方法细节讲解
2013/12/03 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
Python初学者常见错误详解
2019/07/02 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
珍惜水资源建议书
2014/03/12 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
解析Java异步之call future
2021/06/14 Java/Android
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python
Python中requests库的用法详解
2022/06/05 Python