王志勇 发表于 2019年10月08日 13:20
出现这个提示唯一的原因是:Linux主机没有安装MySQL扩展。
如果您的主机是用纯手动输入Shell命令安装的LAMP或LNMP,容易出现这个提示。
经过多系统的调试,Debian、Ubuntu、CentOS的Apache/Nginx、PHP,甚至MySQL,需要的组件几乎都是一模一样的,只是命令会有少量区别。
解决“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”的提示,只需这2步,或者说安装MySQL时,只需安装这2个:
CentOS 5/6:
yum -y install mysql-server php-mysql;
CentOS 7:
yum -y install mariadb-server php-mysql;
Debian 7/8和Ubuntu 12/14:
apt-get -y install mysql-server php5-mysql;
Debian 9/10和Ubuntu 16及以上的版本:
apt -y install mariadb-server php-mysql;
如果系统已安装了Apache/Nginx、PHP,只需安装上述这2个,就可以正常运行Wordpress,然后需要重启Apache/Nginx、重启MySQL,就不会有标题的错误提示。
PHP 7.X下出现这个报错
Ubuntu 16及以上的版本、Debian 9.9及以上的版本,自带源的PHP版本都是PHP 7.X,用上述命令安装,也不会有标题的报错。
如果一旦用第三方的软件源安装,安装完毕,就会有“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”的报错。
原因在哪里呢?经过昨天一天的排查,是因为如果改用了第三方的软件源的PHP版本,则php-mysql扩展安装时,这个软件名称必须带版本号。CentOS 6/7比较好解决,解决办法是先安装php-mysql,然后再安装PHP 7.X,这样等于是把PHP 5的php-mysql移植到PHP 7.X下。
CentOS的解决办法2,如果此时已经安装第三方软件源的PHP 7.X,则先卸载PHP 7.X,再安装php-mysql,再安装PHP 7.X,标题的报错会解决。
CentOS 5/6/7安装php-mysql的命令:
yum -y install php-mysql;
(注:如果系统里已经安装第三方软件源的PHP 7.X,此时运行yum -y install php-mysql,会有报错,报错内容和原因如前文。)
上述这个移植的方法,到了Debian 7/8/9、Ubuntu 12/14/16下尝试,都行不通。需要给php-mysql加版本号。如果是Debian 9/10和Ubuntu 16及以上的版本用自带源的方法安装PHP 7.X,则php-mysql不用加版本号,命令是:
apt-get -y install php-mysql;
如果Debian、Ubuntu使用第三方软件源安装的PHP,此时php-mysql的版本号写在“php”的后面,例如php7.4-mysql,而且最好在安装PHP的时候一同安装,语句写在一起,例如:
Debian 8/9/10通过sury安装PHP 7.4:
(sury命令由于有时效变化,省略……)
apt update; apt -y install php7.4 php7.4-mysql;
Ubuntu命令和方法同上:
Ubuntu 16及以上的版本通过PPA安装PHP 7.4:
(PPA命令由于有时效变化,省略……)
apt update; apt -y install php7.4 php7.4-mysql;
CentOS 6/7如果用了第三方软件源remi安装的PHP 7.X,除了上述的2种解决办法,还可以用Debian、Ubuntu同样的方法来安装php-mysql扩展,同样需要加版本号,只不过版本号变为一个安装参数,命令如下:
yum -y install epel-release;
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
(↑CentOS 7)
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-6.rpm
(↑CentOS 6)
yum -y --enablerepo=remi-php74 install php php-mysql;
经过多系统的测试,LAMP、LNMP下,MySQL、php-mysql扩展的安装命令、步骤和调试没有任何区别,所以上述的方法在LAMP、LNMP均适用。
最后,LAMP需要重启Apache、重启MySQL;LNMP需要重启Nginx、重启fpm、重启MySQL。
本文的方法已在上述提到的所有系统、PHP 5、PHP 7.X、PHP 7.4+Wordpress里测试通过,所以写下这篇总结。
重点说明:Linux主机安装php-mysql扩展不需要修改php.ini
在尝试出本文的解决办法之前,我前几天搜遍了网络,有少量文章很有帮助,其中有一篇是完整安装Wordpress的过程,正是由于这个成功的安装过程,才为我找到解决办法提供了启发。而搜到的很多文章,是相同的复制。复制如果是用于备份,对读者是有益的,防止优秀的技术失传。但是相同的网页太多,影响搜索引擎的结果的质量,占用读者的时间。
其中这些相同的文章里,有很多提到修改Linux主机下的php.ini,并且编译出一个msql.so或者mysql.so。这个方法我试了很久,没有成功。
本文是通过安装php-mysql、或php5-mysql、或php7.X-mysql解决的,全程没有修改php.ini。
附带说明
附1:Debian 9.1的自带源是PHP 5,Debian 9.9的自带源是PHP 7,所以上述的命令里的php-mysql可能会有不同,凡是自带源是PHP 5,则Debian、Ubuntu的名称是php5-mysql;如果自带源是PHP 7,则名称是php-mysql。
但是,无论Debian 9.X的自带源是PHP 5,还是PHP 7,都可以统一用这个命令:
apt -y install php-mysql;
附2:除了php-mysql安装时会涉及到版本号的问题,Debian、Ubuntu系统下的php5-gd的这个扩展,同样和php-mysql有可能也需要相应地加版本号,这一项未在多系统下测试。
php5-gd是一个重要的PHP扩展,它用于处理图片,例如产生缩略图。
附3:如前文的测试,虽然CentOS的PHP性能跑分不如Debian、Ubuntu系统,但是CentOS系统也有一些做得很好的地方,比如安装软件时不需要版本号,如php、php-mysq、php-gd这些组件。
附4:mysql-server、或mariadb-server不受PHP 5、PHP 7版本号的影响。
PHP 5、或PHP 7下安装的mysql-server理论上是完全相同的。例如Debian 8.0+自带源PHP 5.6.40和Debian 8.0+sury+PHP 7.4.0,这2个平台下安装的mysql-server是完全一样的。
https://hqidi.com/51.html
自由勇 2022-04-09 07:41
我最近太忙,每天忙个不停,由于时间的关系,无法尝试调试。建议请把本文,再浏览一遍,然后对照本文的步骤(我现在也需要重新对照),因为我当时已经花了相当多的时间去探索这个问题,并记录在本文,里面还记录了一些细节,比如除了需要重启Apache,也必须重启MySQL。(当时写的这一篇,现在也忘得差不多了。)
出现这个问题,前天我想了一段时间,初步认为问题极可能是出现在你安装PHP时,是用编译安装的PHP 7.4,而WordPress,是挑MySQL版本的,所以会出现如标题的这个报错。
我写本文、调试的过程,是用命令+第三方软件平台安装的PHP 7.4。
正好我没有使用编译安装过PHP。
CentOS下,建议使用第三方软件源remi安装PHP 7.4,请见本文的“PHP 7.X下出现这个报错”这部分,里面有PHP 7.4的安装命令。
如果一定需要编译安装PHP 7.4,也可以参照本文的“PHP 7.X下出现这个报错”这部分,这部分有我对CentOS下的PHP 7.X的一些重要发现,比如:
CentOS 6/7比较好解决,解决办法是先安装php-mysql,然后再安装PHP 7.X,这样等于是把PHP 5的php-mysql移植到PHP 7.X下。
CentOS的解决办法2,如果此时已经安装第三方软件源的PHP 7.X,则先卸载PHP 7.X,再安装php-mysql,再安装PHP 7.X,标题的报错会解决。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +