致命错误:找不到类“IntlDateFormatter”

问题描述 投票:0回答:6

我在本地机器上安装了 WAMP。我的 PHP 版本是 5.3.3

phpinfo()
但是那个扩展不存在! :(

如何在不编译的情况下安装此扩展? 这里只是它的来源。

php ubuntu internationalization wamp amazon-linux
6个回答
70
投票

扩展就在那里!您需要做的就是清除

php.ini
文件中此行之前的注释(;):

窗户:

;extension=php_intl.dll

extension=php_intl.dll

Linux:

;extension=intl

extension=intl

然后重启 apache2 或者 php-fpm 如果你正在使用它。

如果它不起作用,那么你可能需要在 CLI 版本的 php.ini 中更改它。首先用

php --version
检查你的版本,这样你就可以更改正确的 php.ini 文件,它可能与你的 php fpm 版本不同。

仅安装软件包也可能就足够了,例如对于 PHP 8.2:

sudo apt install php8.2-intl


31
投票

如果你在 Debian / 其他 Linux 平台上看到这个。

sudo apt-get install php5-intl
- 适用于 PHP 5.6

sudo apt-get install php7.0-intl
- PHP 7+

亚马逊 Linux

sudo yum install php70-intl

之后重新启动 Apache 服务。

sudo service apache2 restart
重新启动 apache 以获取更改。


5
投票

wampxampp中打开

php.ini
文件并找到以下行,然后删除它开头的注释(
;
):

;extension=php_intl.dll

如果你没有找不到行,将它添加到

php.ini
文件中:

extension=php_intl.dll


4
投票

可能是因为Apache。通过以下命令重新启动 Apache

service httpd restart 

再试一次。


0
投票

如果您在

extension=php_intl.dll
中添加了
php.ini
但它不起作用,您可以将
icu****.dll
文件(大约五个)从 PHP 文件夹复制到 Apache
/bin
文件夹,然后重新启动 Apache 并重试。


0
投票

如果您正在创建要在您不管理的系统上部署的软件包,则可以选择编辑 php.ini。您可以使用 IntlDateFormatter

Symfony 版本。通过一些编辑,可以修改它以在您的应用程序中运行。

注意:此解决方案仅在您无法编辑 php.ini 时才有意义(如有必要,请将 ICU 文件复制到 Apache 中)。否则,其中的“进行一些编辑”部分会使整个事情变得比仅仅启用 intl 更复杂。把这个答案放在这里,因为这是最早询问相关错误的问题。

觉得这个有用的人应该给这个答案投赞成票如何在Symfony中使用

IntlDateFormatter
。这提供了一个重要的缺失步骤。

© www.soinside.com 2019 - 2024. All rights reserved.