LAMP/LNMP纯净原版开发进度(4):MySQL的大坑

王志勇 发表于 2019年10月05日 13:27

LAMP、LNMP在Debian、Ubuntu、CentOS各个版本的开发已经完毕,安装包里解决了每个系统下的各种安装报错。只差MySQL的安装、调试,我从2009年开始开发的每个PHP项目,都没有用到MySQL。

这一次用到MySQL,因为安装包里必须有这个功能;另外,开发的VPS面板,需要备份MySQL。所以,我必须尽快学会、熟练MySQL的安装、调试、备份。

安装MySQL,最好的方法就是练习安装Wordpress。记得前几年,我隔几年都会安装一次Wordpress,每次按照网上别人写的步骤、教程,都在Linux主机下顺利安装。由于安装过程比较顺利,也并不难,所以每次都没有记录下来,但是过后不久就彻底忘了。

这次安装Wordpress,却遇到了一个大坑,这个问题花了一天多才解决。总提示:您的PHP似乎没有安装运行WordPress所必需的MySQL扩展

在百度搜索了解决办法,搜索了很久,终于找到一篇安装Wordpress的完整教程。通过安装成功的过程,我找到了问题的原因。

出现这个原因很特殊,是因为现在的最新版Wordpress,必须安装在PHP 5.6下,而我是用remi第三方软件源安装的PHP 5.6.40。由于初次调试,先在PHP 5.6下熟练环境。

出现这个错误提示,是因为没有MySQL扩展。解决的办法是,CentOS系统:yum -y install php-mysql
(Debian、Ubuntu未测试。)

我是先安装remi+PHP 5.6,然后再安装yum -y install php-mysql。这时总有个报错。

CentOS 6.7这样报错:
Error: Package: php-pdo-5.3.3-49.el6.i686 (base)
      Requires: php-common(x86-32) = 5.3.3-49.el6
      Installed: php-common-5.6.40-13.el6.remi.i686 (@remi-php56)
        php-common(x86-32) = 5.6.40-13.el6.remi
      Available: php-common-5.3.3-49.el6.i686 (base)
        php-common(x86-32) = 5.3.3-49.el6
Error: Package: php-mysql-5.3.3-49.el6.i686 (base)
      Requires: php-common(x86-32) = 5.3.3-49.el6
      Installed: php-common-5.6.40-13.el6.remi.i686 (@remi-php56)
        php-common(x86-32) = 5.6.40-13.el6.remi
      Available: php-common-5.3.3-49.el6.i686 (base)
        php-common(x86-32) = 5.3.3-49.el6

CentOS 7.6.1810这样报错:
Error: Package: php-pdo-5.4.16-46.el7.x86_64 (base)
      Requires: php-common(x86-64) = 5.4.16-46.el7
      Installed: php-common-5.6.40-13.el7.remi.x86_64 (@remi-php56)
        php-common(x86-64) = 5.6.40-13.el7.remi
      Available: php-common-5.4.16-46.el7.x86_64 (base)
        php-common(x86-64) = 5.4.16-46.el7

出现上述报错,是因为CentOS 6.7的自带源PHP是5.3.3版本,CentOS 7.6.1810的自带源PHP是5.4.16版本。通过第三方软件源安装的是PHP 5.6.40,在安装php-mysql时,它仍然会去查找自带的自带源PHP的相关文件,而不是查找PHP 5.6.40的相关文件。

于是尝试各种解决办法,用编译的方法来安装MySQL扩展太复杂,因为需要先下载到PHP 5.6.40的Linux版安装包,然后编译出msql.so或mysql.so。
这个方法如果能成功,那么在LAMP/LNMP安装包的开发里,从PHP 5.4-5.6,PHP 7.0-7.4每个版本都需要相应地编译出这些.so文件。

最后,尝试用移花接木的方法,安装顺利。

安装PHP前,先安装MySQL扩展,命令:yum -y install php-mysql
然后再安装httpd或Nginx、php、mysql-server,命令:yum -y install httpd mysql-server
(PHP是通过remi安装PHP 5.6、或PHP 7.X,命令省略)

这样,顺利安装MySQL扩展,Wordpress也顺利安装成功!

这些软件安装的原理,就是在一个环境下一旦调试成功,相同的步骤移植到别的系统里,也能较顺利成功,所不同的是有一部分命令、报错不同。
今天在CentOS 6、CentOS 7+PHP 5.6下安装成功Wordpress。下一步是在PHP 7、Nginx、Debian、Ubuntu环境下安装调试。

本文里介绍的报错的原因,简单地说,就是如果是用系统的PHP自带源,则不会出现这个报错。一旦改变了系统默认的PHP版本,则必须先安装MySQL扩展,再安装PHP高版本,否则会报错。这个报错,是php-mysql的bug所致。

2019-10-05 14:43更新
CentOS通过第三方软件源安装PHP 5.6、PHP 7后无法安装MySQL扩展的解决办法2:先卸载PHP 5.X或PHP 7.X,命令:
a1=`rpm -qa | grep php`; b1=(${a1// /}); for a2 in ${b1[@]}; do yum -y remove $a2; done;

之后再安装MySQL扩展,再安装PHP。

0条评论:

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

直接发送Trackback到此文章

说明:本评论系统不支持HTML代码。(您的留言需要审核,审核规则请见这里。)

王志勇:1980-09-26 (40周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2020年10月
2020年09月(14)
2020年08月(14)
2020年07月(14)
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2020 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue