【问题标题】:Php - Your PHP installation appears to be missing the MySQL extension which is required by WordPressPhp - 您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展
【发布时间】:2013-07-15 16:45:05
【问题描述】:

如何解决以下错误?

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

我通过 telnet 连接使用我的 NAS。

我安装了 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 网络服务器一样正常工作。

我同样有 phpmyadmin 工作。

它在 Zyxel NSA310 上。

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

有没有人知道这个技巧?

【问题讨论】:

    标签: php mysql wordpress nas


    【解决方案1】:

    最后我找到了解决方案 首先,确保 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 网络服务器:

    /etc/init.d/apache2 restart

    【讨论】:

    • 我讨厌 stackoverflow,因为它不允许我两次投票
    • 我错过了这个> # apt-get install php5-mysql 谢谢兄弟,我今天可以安然入睡了。
    • sudo aptitude install php5-mysql
    • 如果 php 5.6 使用 apt-get install php5.6-mysql
    • 此答案仅适用于使用 apt 的基于 debian linux 的服务器。例如,还有其他操作系统和发行版(RHEL、Centos 等),这很容易产生误导。在这一点上,没有人应该尝试运行生命周期结束的 PHP 版本。
    【解决方案2】:

    不推荐使用 php mysql api。这是 kaput --- 离开了 -- 不被使用,finito。

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

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

    如果您已经在运行现代版本的 PHP,那么这很可能是因为您的 PHP 版本中没有 mysqli 扩展。您可以使用服务器操作系统中的php -i 进行检查,或者使用<php phpinfo(); 创建一个页面并使用浏览器导航到该页面。将有所有扩展的部分。

    如果你没有安装 mysqli 扩展,follow the instructions from the official PHP documentation

    【讨论】:

    • 该插件在过去 2 年内没有升级。这不再建议了。最好将您的 php 版本更新为 >=5.6
    • 假设 wordpress 和现代 php 的现代版本,那么是的,将使用 mysqli,你应该没有问题。显然,有些人仍然使用旧版本,并且通常无法控制在其服务器上运行的 php 版本。
    • PHP 7 doesn't come 带有 mysql 扩展名,因此几乎不可能运行旧版本的 WordPress。
    • 是的!我很难在本地运行一个使用 PHP56 和 WordPress 3.7 的过时网站...将 db.php 放在我的 wp-content 文件夹中工作!现在我不再收到错误“您的 PHP 安装似乎丢失了......”。谢谢!
    【解决方案3】:

    这个 MySQL 库对我有用:

    sudo apt-get install php5-mysqlnd-ms
    

    【讨论】:

    • 对于 php 5.6 sudo apt-get install php5.6-mysqlnd-ms 并重启 apache /etc/init.d/apache2 restart
    【解决方案4】:

    近七年后,这不断得到不同的答案。†许多与对我有用的方法相似——但并不完全相同。 这对我有用(Ubuntu 服务器)。

    将站点移动到新服务器,忘记安装 PHP MySQL 模块/扩展。我跑了一个快速

    apt-get install php-mysql
    

    然后

    apachectl restart
    

    八大兵。没有php5、php7;只是简单的php-mysql

    【讨论】:

    • 很高兴它有帮助!不确定它是否算得上出色,但我一直在接受这种“散乱的答案”——所以我很高兴这能帮助其他人停止拔头发! :,) PS:感谢您的好话和支持
    • 顺便说一句——编辑过的内容是多余的还是只是跑题了?它似乎至少与我无关——它可能适合在某个地方进行元讨论吗?还是我只是在反省被感叹了一千遍的东西?
    • 啊...我回去看到你留下了描述性的评论。我知道了。我希望匕首†意味着足以将陈述与主要答案分开 - 但仍将其表示为“受相同启发”。我的本意不是大喊大叫,而是提出一个可能需要改进的问题(并不是说我知道如何解决它)。
    • 我刚刚注意到 +100。哇,TYVM!
    • 是的,你也保存了我的培根,TYVM :) 我删除了我以前的 cmets,之后将删除这个,以免偏离你回答的技术方面
    【解决方案5】:

    检查

    extension_dir =
    

    如果它在那里,请将其删除。这应该可以解决问题。

    【讨论】:

    • 哦……我的……天啊。我不能为此感谢你,或者给你足够的声誉(我不认为我所有的声誉都可以证明你救了我的挫败感)。我只是用具有此设置的继承 php.ini 将头撞在墙上至少一个小时。这样就解决了,谢谢,谢谢,谢谢!
    • 我在 cPanel 中更改了 PHP 版本,它关闭了我所有的 wordpress 网站。默认页面因“重定向过多”错误而超时,并尝试浏览到特定文件给出“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”。错误。按照建议删除了 extension_dir 行,它带回了站点!非常感谢!!!
    • 我的 extension_dir 已设置,但我无法删除它。它在 php.ini 文件中被注释掉了,所以我不知道它从哪里得到它的路径。
    【解决方案6】:

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

    在软件和服务选项卡下 -> 选择 PHP 版本 -> PHP 选择器 |扩展

    勾选所有与 MySQL 相关的扩展,保存即可。请检查所附图片。

    【讨论】:

    • 干杯伙伴。简单修复。
    【解决方案7】:

    当您升级您的 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
    

    【讨论】:

      【解决方案8】:

      这个错误是由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 并解决了这个问题 :)

      【讨论】:

      • 除了上面提到的wp_check_php_mysql_versions()函数外,更新同目录下的wp_db.php文件就足够了。
      • @Reza,你能告诉我你到底做了什么吗?我能够在 load.php 中找到该函数...然后我需要做些什么来解决这个问题,最后一个链接现在不起作用,我的意思是没有信息.. 如果你能分享这些步骤,什么和在哪里更新,会很棒的
      • @Gauravkhurana 我刚刚替换了 Wordpress 的默认文件和文件夹。你可以关注wordpress.org/support/article/updating-wordpress/#manual-update
      【解决方案9】:

      这可能是不推荐使用 php mysql api 的原因。 如果您使用低于 PHP5.5,只需在您的服务器中更新到 5.6 及更高版本。

      【讨论】:

        【解决方案10】:

        我正在使用 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
        

        【讨论】:

        • 是的,确实如此。我用这个命令安装 sudo dnf install php-mysqlnd.x86_64
        【解决方案11】:

        当我将我的网站 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. 我检查了网站,现在没有错误。升级完成。

        【讨论】:

          【解决方案12】:

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

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

          我也已将此事报告给 Wordfence。

          【讨论】:

            【解决方案13】:

            确保勾选 Mysqli 和 mysqlnd,如屏幕截图所示

            【讨论】:

              【解决方案14】:

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

              【讨论】:

                【解决方案15】:

                我在 resellerclub 托管中遇到了与“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”相同的问题。

                我浏览了这个帖子,知道php版本应该大于> 5.6,这样wordpress就会自动转换为mysqli

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

                【讨论】:

                  【解决方案16】:

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

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

                  【讨论】:

                  【解决方案17】:

                  只需安装 apt-get install php5-mysqlnd 重启阿帕奇 服务 apache2 重启

                  【讨论】:

                    【解决方案18】:

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

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

                    这对我有用。

                    【讨论】:

                      【解决方案19】:

                      对于 php 5.6 sudo apt-get install php5.6-mysqlnd-ms 并重启你的 apache

                      /etc/init.d/apache2 restart
                      

                      【讨论】:

                        【解决方案20】:

                        此消息的来源与我的解决方案无关。

                        我的服务器IP地址改变了,我没有改变我的apache服务器httpd.conf中的&lt;VirtualHost&gt;指令。

                        一旦我将其更改为正确的 IP 地址,消息就会消失,而 Wordpress 又可以正常工作了。

                        【讨论】:

                          【解决方案21】:

                          我已经解决了这个问题,只需在 .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 
                          

                          【讨论】:

                            【解决方案22】:

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

                            记得重新启动 PHP 和/或您的服务器以使更改生效。

                            【讨论】:

                              【解决方案23】:

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

                              sudo apt install php7.0-mysql
                              

                              【讨论】:

                                【解决方案24】:

                                我刚刚删除了我根本不使用的自定义 php ini。问题消失了,网站运行正常。

                                【讨论】:

                                  【解决方案25】:

                                  因为很少有人分享勾选 mysqlimysqlind

                                  的复选框

                                  Hostgator(虚拟主机站点)现在不提供通过 cpanel 选择扩展的选项,因为该选项已删除 select PHP,现在它提供了 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 );
                                  }
                                  

                                  }

                                  【讨论】:

                                    【解决方案26】:

                                    我遇到了同样的问题。

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

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

                                    【讨论】:

                                      【解决方案27】:

                                      这种情况的一个常见情况是升级到 PHP 7.4 或更高版本时,由于启用了 nd_mysqli 而发生冲突。

                                      修复:在[cPanel > Select PHP Version]中禁用nd_mysqli扩展并启用mysqli扩展

                                      启用以下 mysqli 扩展:

                                      mysqlnd
                                      nd_mysqli
                                      nd_pdo_mysql
                                      

                                      禁用以下扩展:

                                      mysqli
                                      pdo_mysql
                                      

                                      【讨论】:

                                        猜你喜欢
                                        • 2021-03-17
                                        • 2013-01-25
                                        • 2014-10-25
                                        • 2019-02-04
                                        • 2015-08-13
                                        相关资源
                                        最近更新 更多