我在 Windows 服务器上有一个 WordPress 网站。我将其移至 ubuntu 服务器上,但出现错误“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展。”
我做了一些研究来修复它并发现“你必须安装 php5-mysql pacakage”。为什么?我已经安装了 php-mysql 包。
重要提示:在同一服务器上运行另一个 WordPress 站点是很好的。
重要提示:Nginx - MySql - Php7.0 安装在 ubuntu 服务器上
请帮助我?
你必须有一种与 MySQL 对话的方式。只有两种方法可以做到这一点
php5-mysql
)。这是较旧的方法。 PHP 未捆绑 MySQL,因此此方法还要求您安装 mysql-client
(或您的发行版使用的任何等效项),因为它通过客户端与 MySQL 进行通信。php5-mysqlnd
)。这种方式是首选,因为它现在是 PHP 的核心部分。这样 PHP 就可以直接与 MySQL 进行通信,无需中介。此外,mysqli
的某些部分在安装此功能后效果更好听起来这是Ubuntu和PHP7。所以你可能需要类似
php7-mysqlnd
的东西
Wordpress 仅检查
mysql_*
功能的可用性。如果您收到此错误,它们将不可用。
如果您确实安装了
php-mysql
元包(我希望它实际上安装了 php7.0-mysql
)并且您在 apache mysql
文件夹中有可用的 mods_available
mod,那么它并不是简单地未启用。您需要添加一个链接到mods_enabled
并重新启动服务器。
顺便说一句,您可以使用
php_info()
检查已启用的模组。
希望这有帮助。
我有一种感觉,您的服务器上安装了 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