我的 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,它将根本不会被找到或安装。