在安装php7时,缺少Mysql扩展。Ubuntu 16.04

我在启用mysql时遇到了问题,在我的php-config中。

apt-get install php-mysqlapt-get install php7.0-mysql没有任何区别。

此外,共享对象在php扩展目录中丢失。

有没有办法能够得到mysql.so


如果您使用的是PHP7,应仅使用_php7.0-mysql_版本。删除其他版本并查看是否有所改善。 - George Udosen
在Ubuntu 16.10中:/usr/lib/php/20151012/mysqli.so是由php7.0-mysql软件包提供的。请检查/etc/php/7.0/apache2/conf.d/20-mysqli.ini文件,确保你有以下内容:extension=mysqli.so - f35
6个回答

在Ubuntu上,我通过运行以下命令来修复这个错误。
sudo apt-get install php-mysql

然后重新启动我的服务器(caddy,apache,nginx)。 source

无法在PHP7.1和Ubuntu 16.04上运行(缺少mysql)。 - The Onin
1我得到的错误,这个信息帮助我解决了:"PHP缺少WordPress所需的MYSQL扩展"。 - givonz
在Ubuntu 16.04上,我不得不强制使用php7.0-mysql,尽管我实际上正在使用php 7.3(Wordress版本5.2)。 - Dagmar

我猜你在谈论 PHP 中的(非常)旧的 MySQL 函数,比如 mysql_connect()mysql_query()。这些函数已经被废弃多年,并且在 PHP 7 中最终被移除。现在应该使用 mysqli 扩展 或类似 PDO 的供应商无关的抽象层来代替。

我曾经有过这个问题,但是与一个非常特定版本的Ubuntu相关,它在一个Docker镜像上。诀窍是在同一个RUN命令中更新和安装。
RUN apt-get update && apt-get install php7.0-mysql

非常感谢你。php7.0-mysql是缺失的问题包 =) - sova


mysqli.so 在18.04中确实被标记为丢失并且似乎未安装。我认为这可能是由于软件包损坏,因为有一个php-mysqli的软件包没有安装,而php-mysql已经安装。

但是,我在/var/lib/php/modules/7.2/cgi/enabled_by_admin/找到了mysqli.so

php.ini中,在extension=mysqli下面添加extension=/path/here/to/mysqli.so,这样就不会再出现mysqli.so缺失的错误。

个人认为这些软件包有问题,要想使其正常工作,您必须启用扩展并设置扩展路径(您可以使用dpkg-query -L命令查看mysqli.so是否包含在软件包内容中,以及它被安装在哪里)。



1Op希望得到有关MySQL的帮助,而不是整个技术堆栈。 - Peter Chaula