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条评论:

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

正文:

  记住信息?

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

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

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

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写