《PHP教程:CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法》要点:
本文介绍了PHP教程:CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法,希望对您有用。如果有疑问,可以联系我们。
PHP学习最近试了一下PHP7,在编译和支持MySQL上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程.简单来讲编译PHP7只必要3步:
PHP学习1、./buildconf --force
2、./configure
3、make && make install
PHP学习1、3步,都没啥好管的,configure是编译的关键,涉及到PHP对一些库的支持,这里我们使用最小的支持,包含MySQL:
PHP学习curl
gd
fpm
mysqlnd
PHP学习之所以把curl和gd拿来说,目的是要搞清楚,这些三方库在编译PHP之前得安装好,可以直接使用yum安装在默认位置,也可以编译安装到指定位置,yum安装后,编译时不用指定库的安装位置,关于安装这些库,可以搜索一下有很多.下面看看基本的configure
PHP学习./configure --prefix=/apps/php/php7.0 --enable-mbstring --with-curl --with-gd --with-config-file-path=/apps/php/php7.0/etc/ --
PHP学习enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd
PHP学习PHP-FPM
PHP学习关于fpm,相信不用多说,用它来支持PHP是一个比拟好的选择,PHP5.3.3开始就已经内置了php-fpm,所以PHP7里当然也有,只需要--enable-fpm一下就可以了
PHP学习php-fpm参数:
PHP学习--start 启动
--stop 强制终止
--quit 平滑终止
--restart 重启
--reload 重新平滑加载php的php.ini
--logrotate 重新启用log文件
PHP学习MySQL支持
PHP学习重点讲一下这个,因为在它上面花了一点时间,不知道从哪一版本开始,PHP不在希望使用mysql的库来支持mysql的连接,启用了mysqlnd来支持,听说比libmysql要快很多,PHP5.x还可以使用libmysql,PHP7貌似已经取消了支持,编译都没有了--with-mysql参数,只支持--with-mysqli和--with-pdo-mysql,可以通过查看configure的参数来知道:
PHP学习
./configure -help | grep mysql
PHP学习
PHP学习可以看到,PHP希望使用mysqlnd来支持MySQL,所以参数可以这样写:
PHP学习--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
PHP学习mysqlnd是不必要mysql支持的,所以不用先安装好mysql一样可以编译通过,启动php-fpm,查看一下phpinfo,能看到mysqlnd和pdo_mysql表示php已经可以支持mysql了(这里用的是pdo,mysqli同理)
PHP学习
PHP学习
PHP学习几个问题
PHP学习编译问题:cc: Internal error: Killed (program cc1)
PHP学习这个问题是第一次遇到,原来是我的阿里云服务器关掉了swap,内存不够用,就报了这个错. 解决方法很简单,configure时加上--disable-fileinfo参数就可以了.
PHP学习PHP报找不到mysql服务
PHP学习正如它所说,确实没找到,看看phpinfo中pdo_mysql.default_socket项
PHP学习
PHP学习mysql.sock在哪里,再看一下mysql.sock的真正位置,使用命令:ps -ef|grep mysql查看:
PHP学习
PHP学习明显不在一个位置上,我的正确位置是:/var/lib/mysql/mysql.sock
PHP学习所以,修改一下php.ini,找到pdo_mysql.default_socket,改为你的实际位置,重启一下php-fpm,很不幸,虽然php.ini有这个配置,修改后,竟然不行,最好是编译的时候,指定mysql.socket的位置:
PHP学习
--with-mysql-sock=/var/lib/mysql/mysql.sock
PHP学习如果还不行,可以到/tmp目录下建立一个mysql.sock的软链接:
PHP学习
ln -s /var/lib/mysql/mysql.sock mysql.sock
PHP学习再重启一次php-fpm,相信已经正常运行了.如果必要PHP支持的库更多,可以再次编译,在configure时把必要的支持加上,就是--with-xxx这中,记得如果是三方的,要先安装这些库才行哦.
《PHP教程:CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法》是否对您有启发,欢迎查看更多与《PHP教程:CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法》相关教程,学精学透。维易PHP学院为您提供精彩教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/8236.html