我的 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/modules不包含
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/modules
为什么要安装到这个其他位置?我怎样才能让它安装到正确的模块目录,或者告诉 PHP 从 /opt/remi/php72/root/usr/lib64/php/modules加载 .so 文件的正确方法是什么?
这修复了它:
它将它安装到/usr/lib64/php/modules。另外,我不必手动将它添加到/etc/php.ini(这样做会导致它已经加载的错误)
我不知道为什么
--enablerepo=remi
需要它,或者它意味着什么——因为yum install php72-php-intl
显然安装了它(尽管安装到了错误的位置并且没有启用)。我的理解是,如果未启用 repo,则根本找不到或安装它。