如何在 Centos PHP 7.2 上安装 PHP-intl

如何在 Centos PHP 7.2 上安装 PHP-intl

我的 PHP 7.2 应用程序出现错误Message: Class 'NumberFormatter' not found

我们正在运行:

  • PHP 7.2.34
  • CentOS Linux 版本 7.9.2009(核心)

我尝试安装 PHP-intl,它似乎可以工作了,现在如果我再试一次,我会得到这个:

# yum install php72-php-intl
# Package php72-php-intl-7.2.34-4.el7.remi.x86_64 already installed and latest version
# Nothing to do

我已经重新加载了 Apache,但是扩展尚未加载:

  • php -m没有列出模块。
  • /usr/lib64/php/模块不含intl.so

通过运行rpm -ql php72-php-intl我可以看到这些文件已安装:

/etc/opt/remi/php72/php.d/20-intl.ini
/opt/remi/php72/root/usr/lib64/php/modules/intl.so

但是 extension_dir 设置为/usr/lib64/php/模块

为什么它要安装到这个其他位置?我怎样才能将它安装到正确的模块目录,或者告诉 PHP 从哪里加载 .so 文件的正确方法是什么 /opt/remi/php72/root/usr/lib64/php/模块

答案1

这修复了它:

yum --enablerepo=remi install php-intl

它安装到/usr/lib64/php/模块。另外,我不需要手动将其添加到/etc/php.ini(这样做会导致错误,因为它已经加载)

我不知道为什么--enablerepo=remi需要它,或者它意味着什么——因为yum install php72-php-intl显然安装了它(尽管安装到了错误的地方并且没有启用)。

我的理解是,如果没有启用 repo,它将根本不会被找到或安装。

相关内容