Php - 您的PHP安装似乎缺少WordPress所需的MySQL扩展

时间:2013-07-17 08:15:02

标签: php mysql wordpress nas

如何解决以下错误?

  

您的PHP安装似乎缺少WordPress所需的MySQL扩展。

我使用我的NAS与telnet连接。

我安装了FFP 0.7

我的php.ini位于:ffp/etc/php.ini,我取消了我认为有用的所有内容。

以下是我的php.ini文件的一部分;

;If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
extension=msql.dll
;
; ... or under UNIX:
;
extension=msql.so
;
; ... or with a path:
;
extension=/ffp/lib/extensions/no-debug-non-zts-20100525/mysql.so
;


extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so

突出的问题是,当我在phpinfo()中运行时,我看到MySQLi模块被激活但不是MySQL。

MySQL正如PHP和Lighttpd Web服务器一样正常工作。

我同样有phpmyadmin工作。

它在Zyxel NSA310上。

此外,当mysqld启动时,它会从我的根目录创建一个快捷方式:ffp/opt/mysql..,每次重新启动NAS时,快捷方式都会被删除。

有人可能知道这个伎俩吗?

26 个答案:

答案 0 :(得分:37)

最后我找到了解决方案首先,确保MySQL服务器正在运行。在shell提示符下键入以下命令:     #/ etc / init.d / mysql status

如果MySQL未运行,请输入:     #/ etc / init.d / mysql start

如果未安装MySQL,请键入以下命令以安装MySQL服务器:     #apt-get install mysql-server

确保安装了适用于php5的MySQL模块:      #dpkg --list | grep php5-mysql

要安装php5-mysql模块,请输入:     #apt-get install php5-mysql

接下来,重启Apache2 Web服务器:     #/ etc / init.d / apache2 restart

答案 1 :(得分:25)

不推荐使用php mysql api。它是kaput ---走开 - 不被使用,finito。

如果你有一个现代版本的PHP(> 5.6),那么Wordpress应该自动切换到使用mysqli。这应该是你的第一次尝试。

如果你无法更新你的php,而不是试图恢复php不再支持的东西,只需修改你的wordpress:http://wordpress.org/plugins/mysqli/

答案 2 :(得分:9)

这个MySQL库对我有用:

sudo apt-get install php5-mysqlnd-ms

答案 3 :(得分:7)

检查

extension_dir =

如果它在那里删除它。应该解决问题。

答案 4 :(得分:4)

如果您安装了Wordfence插件,我发现在.htaccess文件中注释了suPHP_ConfigPath行,使网站恢复了生机:

# Wordfence WAF
#<IfModule mod_suphp.c>
#   suPHP_ConfigPath '/home/a1614947/public_html'
#</IfModule>

我也向Wordfence报告了此事。

答案 5 :(得分:4)

如果人们使用cPanel(Godaddy,经销商俱乐部,Hostgator或任何共享主机)共享Linux主机,请尝试以下操作:

在“软件和服务”标签下 - &gt;选择PHP版本 - &gt; PHP选择器|扩展

勾选所有与MySQL相关的扩展程序,保存并完成。请查看附图。

Image showing the extensions in cPanel

答案 6 :(得分:4)

当你升级你的php版本时,请确保,apache2如下。 你可以创建一个phpinfo()文件,它可以显示apache仍在使用旧的php版本。

在这种情况下你应该使用a2dismod php-old-version和a2enmon php-mod-version命令

例如:

在ubuntu中,你从/ etc / apache2 / mods-enabled中获取旧版本,或从phpinfo文件显示的版本中获取旧版本,然后从/ etc / apache2 / mods-available

获取新版本
> sudo a2dismod php5.6
> sudo a2enmod php7.1
> sudo service apache2 restart

答案 7 :(得分:4)

此错误由WP核心文件/wp-includes/load.php创建,函数名称为wp_check_php_mysql_versions()

旧版本的WP不支持MySqli。但最新的WP版本同时支持MySql和MySqli扩展without bothering installed PHP versions

解决了我的问题100%

在我的情况下,我只是updated the Wordpress core files manually并解决了问题:)

答案 8 :(得分:4)

在将近七年后,这一直得到不同的答案。†许多与对我有用的相似但不完全相同。 这是对我有用的(Ubuntu服务器)。

将站点移至新服务器,忘记安装PHP MySQL模块/扩展。我跑了

apt-get install php-mysql

然后

apachectl restart

八大兵。没有php5,php7;简直php-mysql

答案 9 :(得分:3)

我正在使用Fedora 25

sudo dnf search php | grep mysql

php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php-pear-MDB2-Driver-mysqli.noarch : MySQL Improved MDB2 driver mysqli

sudo dnf install php-mysqlnd.x86_64

答案 10 :(得分:3)

这可能是php mysql api被弃用的原因。 如果您使用以下&lt; PHP5.5只需在您的服务器中更新到5.6及更高版本。

答案 11 :(得分:2)

msqli and mysqlnd are checked

确保在您的php选择器中检查了msqli和mysqlnd。 然后将.htaccess文件的名称更改为.htaccess_old。 查看您的网站现在是否可以加载。

如果可以,请转到仪表板并保存永久链接,它将创建一个新的.htaccess文件。

这对我有用。

答案 12 :(得分:2)

就我而言,使用CPanel PHP选择器并选择mysqli和mysqlnd起作用。 Ensure to save and recheck once

答案 13 :(得分:1)

确保如屏幕截图所示,勾选Mysqli和mysqlnd enter image description here

答案 14 :(得分:1)

当我将网站PHP从5.6版本升级到7.2时,我遇到了此问题“您的PHP安装似乎缺少WordPress所需的MySQL扩展”。事实证明,PHP 7.2版不再支持mysql扩展。现在它正在使用mysqli扩展。我正在使用旧版本的WordPress,但仍使用mysql扩展名,这就是存在该问题的原因。因此,我所做的就是将WordPress升级为核心。这样可以解决问题。

这是我手动升级WordPress时遵循的步骤。

  1. 首先,我创建了网站的完整备份。如果发生错误,这非常重要。
  2. 我从wordpress.org下载了最新的WordPress ZIP文件。
  3. 我将文件解压缩到计算机的本地目录中。
  4. 我转到我的网站根目录,并删除了“ wp-includes”和“ wp-admin”目录。我通过Filezilla软件使用了sFTP连接。
  5. 我从新版本的WordPress上传了新的wp-includes和wp-admin目录,并将其解压缩到我的网站根目录中,并替换了刚刚删除的目录。
  6. 我没有删除wp-content目录或该目录中的任何文件。我只是将文件从新版本WordPress的wp-content目录复制到我现有的wp-content目录中。具有相同名称的所有现有文件已被覆盖。
  7. 我从新版本WordPress的根目录('/')复制了所有文件,并将其解压缩到网站的根目录(或WordPress安装目录的根目录)中。现有文件已被覆盖,新文件已被复制。 wp-config.php文件不受影响,因为WordPress从未与wp-config.php文件一起分发。
  8. 我比较了WordPress分发的wp-config-sample.php,但是没有发现任何更改,因此我只使用了旧版本。
  9. 我清除了浏览器缓存,以确保可以看到所有更改。
  10. 我检查了站点,现在没有错误。升级完成。

答案 15 :(得分:1)

只需安装 apt-get install php5-mysqlnd 重启Apache service apache2 restart

答案 16 :(得分:1)

此问题是由于缺少数据库。如果是全新安装,则需要手动创建一个并为用户分配权限。

请检查wp-config.php是否有任何错误配置,并确保数据库和表格没有丢失或损坏。

答案 17 :(得分:1)

我遇到了同样的问题&#34;您的PHP安装似乎缺少WordPress&#34;所需的MySQL扩展。在resellerclub托管。

我经历了这个帖子并且知道php版本应该大于&gt; 5.6这样wordpress会自动转换为mysqli

然后登录到我的cpanel搜索cpanel中的php以检查版本,幸运的是能够找到我的php版本是5.2并通过确保mysqli在选项窗口中标记并保存它来将其更改为5.6现在工作正常。

答案 18 :(得分:0)

对于php 5.6 sudo apt-get install php5.6-mysqlnd-ms并重新启动Apache

/etc/init.d/apache2 restart

答案 19 :(得分:0)

此消息的来源与我的情况无关。

我的服务器IP地址已更改,而我未更改apache服务器的httpd.conf中的<VirtualHost>指令。

一旦我将其更改为正确的IP地址,该消息就会消失,并且Wordpress可以再次工作。

答案 20 :(得分:0)

我已经解决了仅在.htaccess文件中添加以下代码的问题。我希望这也对你们有用。

第1步:从服务器更改PHP版本。

第2步:根据您的PHP版本(从服务器中选择)在.htaccess文件中添加以下代码。

要切换到PHP 4.4:

AddHandler application/x-httpd-php4 .php

要切换到PHP 5.0:

AddHandler application/x-httpd-php5 .php

要切换到PHP 5.1:

AddHandler application/x-httpd-php51 .php

要切换到PHP 5.2:

AddHandler application/x-httpd-php52 .php

要切换到PHP 5.3:

AddHandler application/x-httpd-php53 .php

要切换到PHP 5.4:

AddHandler application/x-httpd-php54 .php

要切换到PHP 5.5:

AddHandler application/x-httpd-php55 .php

要切换到PHP 5.6:

AddHandler application/x-httpd-php56 .php

要切换到PHP 7:

AddHandler application/x-httpd-php7 .php

要切换到PHP 7.1:

AddHandler application/x-httpd-php71 .php 

答案 21 :(得分:0)

在运行PHP版本7.3.x的Oracle Linux 7.x上,您需要运行sudo yum install php-mysqlnd才能为PHP安装缺少的MySQL扩展。

请记住重新启动PHP和/或服务器,以使更改生效。

答案 22 :(得分:0)

对我来说(ubuntu 16.04)获胜者是:

sudo apt install php7.0-mysql

答案 23 :(得分:0)

我刚刚删除了自定义php ini,我根本不使用它。问题消失了,站点工作正常。

答案 24 :(得分:0)

很少有人共享以选中 mysqli mysqlind

的复选框

但是 Hostgator (网站托管网站)现在不提供通过cpanel选择扩展名的选项,因为该选项已被删除选择PHP ,现在它提供了< strong> php管理器

您可以选择所需的Php版本,而不能选择扩展名。

解决方案:-称为 hostgator ,他们第一次说与您的开发人员联系时,(我问我的兄弟,他在本地下载了文件并确认它是在本地系统上工作正常)<-但这不是必需的

再次致电 hostgator ,他们的后端团队安装了缺少的扩展程序,此问题已解决。

下面是代码,当找不到扩展名时会出现此错误,您可以通过ftp在 load.php 中找到此行。

if ( ! extension_loaded( 'mysql' ) && ! extension_loaded( 'mysqli' ) && ! extension_loaded( 'mysqlnd' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) {
    require_once ABSPATH . WPINC . '/functions.php';
    wp_load_translations_early();
    $args = array(
        'exit' => false,
        'code' => 'mysql_not_found',
    );
    wp_die(
        __( 'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.' ),
        __( 'Requirements Not Met' ),
        $args
    );
    exit( 1 );
}

}

答案 25 :(得分:0)

我遇到了同样的问题。

我检查了我网站的 php 版本,它已经很旧了。我已更正并将其重置为最新版本。

问题已通过重置php版本解决。