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

2025-05-29 0 53

最近试了一下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的参数来知道:

?

1
./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的位置:

?

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

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

?

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

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法 https://www.kuaiidc.com/99689.html

相关文章

发表评论
暂无评论