Symfony 2:安装并启用 intl 扩展

Posted

技术标签:

【中文标题】Symfony 2:安装并启用 intl 扩展【英文标题】:Symfony 2: Install and enable the intl extension 【发布时间】:2012-04-30 09:08:27 【问题描述】:

我正在使用XAMPP for Windows,并决定尝试Symfony 2

我一进入Symfony Configuration 页面,它就会建议我安装并启用intl

我尝试阅读 PEAR'sPECL's 指南,因为我对这个主题完全 0(最近开始学习 php),但没有任何效果。

我在我的C:\xamp\php\ext 中找到了php_intl.dllphp.iniextension_dir= 设置为 "C:\xampp\php\ext"。我只是错过了php.ini 中的extension=php_intl.dll,所以我添加了它。

很遗憾,它不起作用,Symfony 一直在向我询问 intl

【问题讨论】:

试过 ./ext 作为扩展目录?它是哪个php版本? 刚刚做了。它没有帮助。它告诉我它无法加载 php_bz2.dll 这是 php.ini 中列出的第一个未注释的扩展 是原始的 xamp 还是对 php 和 apache 将如何相互使用进行了一些修改? 我刚刚运行了XAMPP 的安装文件,按照所有说明操作,没有修改任何内容,仅此而已。 php 5.4 带有一个内置的网络服务器,也许它就是这样工作的。如果这不是解决方案,请尝试重新安装 xamp 或调整其配置 【参考方案1】:

要解决这个问题,去“c:\xampp\php\php.ini”在你的编辑器中打开它并搜索动态扩展然后去搜索 ;extension=php_intl.dll 并启用它(删除;变成像) extension=php_intl.dll 之后保存你的文件 php.ini 并重新启动你的本地主机

【讨论】:

【参考方案2】:

对于 OS X 用户:

1. 通常,PHP 会自动安装在 OSX 上。因此,如果您想使用 XAMPP 或任何 apache 服务器,您必须将路径点更改为 XAMPP。您可以使用以下命令检查路径:

$ which php

(不要复制 $ 符号,这意味着你应该在终端中输入这个,而不是 php)

你应该得到:/Applications/XAMPP/xamppfiles/bin/php

如果没有,您将获得/usr/bin/php

这是 OSX 的 php.ini 文件。因此,您必须使用以下方法将其更改为 XAMPP' php:

$ PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"

2.运行此命令下载、解压、编译和安装ICU(你可以选择不同的版本是你需要的Symfony):

$ curl -sS -o /tmp/icu.tar.gz -L http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz && tar -zxf /tmp/icu.tar.gz -C /tmp && cd /tmp/icu/source && ./configure --prefix=/usr/local && make && sudo make install

比运行:

$ sudo pecl install intl

并指定 ICU 库和头文件的位置 [DEFAULT]:

/usr/local

注意安装报告中的信息:

You should add "extension=intl.so" to php.ini

别忘了重启 Apache 并检查版本:

<?php
if (extension_loaded('intl')) 
    echo "PHP: " . PHP_VERSION . "<br>\n";
    echo "ICU: " . INTL_ICU_VERSION . "<br>\n";
 else 
    die('OOPS! The intl extension is not enabled!');

部分取自这里,但经过修改以获得成功Install PHP Internationalization extension (Intl) on XAMPP on Mac

【讨论】:

【参考方案3】:

对于 Linux 用户: 安装 php5-intl 让它对我有用

sudo apt-get install php5-intl

在这里找到: http://www.php.net/manual/en/intl.setup.php

【讨论】:

这个答案不是针对 Windows 的,而是针对 linux 的。请编辑您的答案以说明这仅适用于 linux。【参考方案4】:

要在 Xampp 中激活此扩展,只需编辑您的 php.ini(即在 C:\xampp\php 目录中)并删除分号以取消注释此行:

;extension=php_intl.dll

最后别忘了重启 Apache!

【讨论】:

【参考方案5】:

按照以下步骤操作:

    C:\wamp\bin\php\php5.5.12复制所有以“icu”开头的文件名并粘贴到C:\wamp \bin\apache\apache2.4.9\bin(我正在使用 WAMP。为 XAMP 自己弄清楚。)

你可以试试。什么都不会伤害。如果您觉得这些东西不起作用,您可以删除它们。我相信它会 100% 为您工作。

    取消注释 C:\wamp\bin\apache\apache2.4.9\bin\php.ini 上的以下行

    extension=php_intl.dll
    

它会起作用的。

【讨论】:

我做了所有这些事情,但它不起作用。谢谢【参考方案6】:

每当您对php.ini 进行更改时,请记住重新启动Apache。否则更改不会生效。您可以在XAMPP Control Panel 中执行此操作,方法是单击Apache 模块行中的stop/start 按钮。

【讨论】:

【参考方案7】:

http://php.net/manual/en/intl.requirements.php

从 PHP 5.3.0 开始,此扩展与 PHP 捆绑在一起。 或者,此扩展的 PECL 版本可以与所有 PHP 版本高于 5.2.0(推荐 5.2.4+)。

还阅读了我对您上面帖子的评论

【讨论】:

以上是关于Symfony 2:安装并启用 intl 扩展的主要内容,如果未能解决你的问题,请参考以下文章

带有 PHP 7.1 的 Symfony 3 的给定 ICU 版本的 intl 扩展

如何解决问题 - 请安装“intl”扩展以获得完整的本地化功能

安装 PHP 7 后如何安装/启用 intl 和 xsl 扩展

无法安装 php mcrypt 和 intl 扩展

如何以编程方式启用php扩展intl

一个php平台安装问我国际扩展,但它似乎已经安装