【问题标题】:Ubuntu 20.04, PHP 7.4: mbstring installed but not enabledUbuntu 20.04、PHP 7.4:mbstring 已安装但未启用
【发布时间】:2021-08-29 16:43:15
【问题描述】:

我正在运行 Ubuntu 20.04,并使用 PHP 7.4。

在安装 phpBB 期间,报告“为了使 phpBB 正常运行,PHP mbstring 扩展需要可用。”我能够安装它; sudo apt list | grep mbstring 举报php7.4-mbstring/focal,now 7.4.20-1+ubuntu20.04.1+deb.sury.org+1 amd64 [residual-config]

但是,phpinfo.phpexif 部分报告Multibyte decoding support using mbstring disabledphpinfo.php 还报告了Loaded Configuration File /etc/php/7.4/apache2/php.ini

我编辑了这个 .ini 文件以在动态扩展部分取消注释 ;extension=mbstring,然后重新启动 apache。但是,phpinfo.php 仍然报告扩展名已禁用。我什至重新启动了服务器,但无济于事。我错过了什么?

【问题讨论】:

  • 好的,这是一条线索——如果我对 mbstring 执行 php -m 和 grep,我会收到 PHP 警告:PHP 启动:无法加载动态库 'mbstring.so'(尝试过:/usr/ lib/php/20190902/mbstring.so (/usr/lib/php/20190902/mbstring.so: 无法打开共享对象文件: 没有这样的文件或目录), /usr/lib/php/20190902/mbstring.so.so (/usr/lib/php/20190902/mbstring.so.so: 无法打开共享对象文件: 没有这样的文件或目录)) 在 Unknown on line 0
  • 原来,mbstring.so是在.../20200930,而不是20190902。这个路径是在哪里配置的,我可以改吗?

标签: ubuntu php-7 mbstring


【解决方案1】:

好吧,我猜没有安装了正确的软件包;这成功了:sudo apt-get install php7.4-mbstring。这会将 mbstring.so 传递到 20200930 目录,phpinfo.php 报告它启用。

【讨论】:

    【解决方案2】:

    正如您所发现的 - 软件包在过去安装但已被删除(但未清除,因此配置文件保持不变),这由 [residual-config] 指示。

    安装php-mbstring 而不是php7.4-mbstring,您的设置将更加面向未来,除非您的用例需要这个确切的版本。 php-mbstring 只是一个依赖包,依赖于当前版本,所以在 20.04 上它会安装 php7.4-mbstring 但是当你升级到下一个操作系统版本时,它将根据随它一起发布的任何 php 版本进行升级。

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 1970-01-01
      • 2022-11-04
      • 2019-01-09
      • 2023-03-12
      • 2021-06-22
      • 2018-09-18
      • 2018-11-04
      • 1970-01-01
      相关资源
      最近更新 更多