警告:/etc/php/7.0/mods-available 下不存在模块 ini 文件

WARNING: Module ini file doesn't exist under /etc/php/7.0/mods-available

我已经从 ubuntu 卸载了 php7 及其所有模块,当我尝试重新安装模块时,每个 php 模块都出现以下错误,虽然模块已安装,由于这个错误,它没有被激活,我无法使用它们。 有什么办法可以解决这个问题吗? 每个模块的错误(安装时):

Not replacing deleted config file /etc/php/7.0/mods-available/intl.ini
WARNING: Module [module name] ini file doesn't exist under /etc/php/7.0/mods-available
WARNING: Module [module name] ini file doesn't exist under /etc/php/7.0/mods-available
WARNING: Module [module name] ini file doesn't exist under /etc/php/7.0/mods-available

问题是因为用 sudo apt-get remove [package] 删除了 php 并且使用这种形式,配置文件不会从计算机上清除,下次您尝试安装包时,Ubuntu 不会让包配置文件被覆盖。 解决方案是完全删除带有 purgeautoremove 的软件包,这样它将连同其配置文件一起从计算机中完全删除,下次您尝试安装时,配置文件将被删除已创建。

我来这里是因为我在从 php 7.0 升级到 7.1

后在 Ubuntu 上安装 Phpmyadmin 时遇到问题

技巧在这里

  1. 删除 php 版本(例如 7.0 - 调整命令行)

    sudo apt-get purge php7.0-common

注意 --> 您应该检查将要删除的软件包列表。

  1. 安装php个模块

    sudo apt-get install php7.1-mbstring sudo apt-get install php7.1-mcrypt ...

  2. 激活模块

    sudo phpenmod mbstring sudo phpenmod mcrypt

(apache 的选项)激活 php7.1

sudo a2enmod php7.1

当然还要重启你的服务器(在本例中是 apache)

sudo systemctl restart apache2

对我来说,执行这个命令就解决了问题:

sudo apt install php7.0-mbstring

我注意到有时(我不知道什么时候以及为什么)模块在没有 php 版本的情况下被调用(例如 sudo phpenmod mbstring)但是 php 搜索它由 php 使用的版本(在我的例子中是 7.0.33)。

我正在使用 Ubuntu 18.04,我们之前刚安装过 1。

第一步 运行更新包存储库并获取最新包信息的更新命令。

sudo apt-get update -y

第2步 运行 带有 -y 标志的安装命令可以快速安装包和依赖项。

sudo apt-get install -y php-mysqli