【问题标题】:Do I need install php5-mysql我需要安装 php5-mysql
【发布时间】:2017-02-01 08:04:58
【问题描述】:

我在 Windows 服务器上有一个 wordpress 站点。我将它移到 ubuntu 服务器上,但出现错误“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展。”

我做了一些研究来修复它并创建了“你必须安装 php5-mysql pacakage”。为什么?我已经安装了 php-mysql 包。

重要提示:在同一台服务器上有另一个 wordpress 网站可以正常工作。

重要提示:Ubuntu服务器上安装了Nginx - MySql - Php7.0

请帮帮我?

【问题讨论】:

  • 如果使用PHP5,需要安装php5-mysql。
  • 没有,我用过 php7。
  • @Evgeniy 仅供参考,最好使用mysqlnd

标签: php mysql wordpress ubuntu


【解决方案1】:

你必须有办法与 MySQL 对话。只有两种方法可以做到这一点

  1. 通过 MySQL 客户端(即php5-mysql)。这是较旧的方法。 PHP 未捆绑 MySQL,因此此路线还需要您安装 mysql-client(或您的发行版使用的任何等效项),因为它通过客户端与 MySQL 对话。
  2. 通过MySQL Native Driver(即php5-mysqlnd)。这种方式是首选,因为它现在是 PHP 的核心部分。这种方式 PHP 直接与 MySQL 通信,无需中介。此外,mysqli 的某些部分在安装后效果更好

听起来这是 Ubuntu 和 PHP7。所以你可能需要php7-mysqlnd

【讨论】:

  • 您好,请问如何安装?
  • 我认为:sudo apt-get install php7-mysqlnd
  • 我收到“无法找到包 php7-mysqlnd”
  • 没关系。显然这是一个 RedHat 约定。 php7-mysql 显然是 Ubuntu 中的 mysqlnd
【解决方案2】:

Wordpress 仅检查 mysql_* 函数的可用性。如果您收到此错误,则它们不可用。

如果你真的安装了php-mysql 元包(我希望它真的安装了php7.0-mysql)并且你在apache mods_available 文件夹中有mysql mod,那么它不仅仅是没有启用。您需要添加指向mods_enabled 的链接并重新启动服务器。

顺便说一句,您可以使用php_info() 来检查已启用的模组。

希望这会有所帮助。

【讨论】:

  • 我不用apache服务器,我用的是nginx
  • 那么应该在 NGINX 中启用 MySQL mod。
  • 我该怎么做? @Boris 我有一个重要说明“在同一台服务器上有另一个 wordpress 网站运行良好。”
  • @Boris Shchegolev Apache 和 NGINX 不了解数据库服务器。它应该在 PHP 中启用
  • 需要注意的是PHP7 removed mysql_ functions
【解决方案3】:

我有一种感觉,您的服务器上安装了 2 个 PHP,即 php5.6 和 php7.0。由于存在 php7.0 并且您似乎没有使用(根据您描述问题的方式)自定义 source.list 来实现这一点,我假设您已经安装了 Ubuntu 16.04。

您的 Ubuntu 16.04 服务器上的以下命令应该可以为您解决此问题:

apt install php7.0-mysql
service php7.0-fpm restart
service nginx restart

但是,如果您确实安装并激活了活动的 php5,您应该检查您的 php-fpm 池是否使用了不同的版本。您可以通过查看文件来检查:

/etc/php/7.0/fpm/pool.d/www.conf

此外,您可以通过在您的服务器上运行以下命令并与我们分享他们的输出来更新您的问题的更多详细信息:

lsb_release -a (determines Ubuntu version)
which php (determines which php is loaded in the command line)
service --status-all (shows installed services and their status)

根据您提供的详细信息,我假设 PHP 包存在一些混淆,这应该可以帮助您摆脱问题。请注意,以下命令很可能会影响同一服务器上的其他网站,您应该在运行之前了解该命令的作用。本质上,它将删除您现在拥有的所有 php 包,然后仅重新安装 php7.0 包。

apt update

apt purge --auto-remove php-common php-fpm php-mysql php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-mysql php7.0-opcache  php7.0-readline

apt autoremove -y
apt autoclean -y

apt install php7.0-fpm php7.0-mbstring php7.0-xml php7.0-mysql php7.0-common php7.0-gd php7.0-json php7.0-cli php7.0-curl 

【讨论】:

  • 嗨,安装包; php-common install php-fpm install php-mysql install php7.0-cli install php7.0-common install php7.0-fpm install php7.0-json install php7.0-mysql install php7.0-opcache install php7. 0-readline 安装
  • 我根据您的输入更新了答案,但我仍然需要知道您运行的是哪个 Ubuntu 版本..以及您安装/运行了哪些服务..
  • 谢谢大家,我的问题解决了。在移动网站之前,我将我的 wordpress 网站更新到了最新版本。 :)
猜你喜欢
  • 2016-04-17
  • 2011-09-19
  • 2017-10-04
  • 2012-04-28
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
相关资源
最近更新 更多