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's
和 PECL's
指南,因为我对这个主题完全 0(最近开始学习 php
),但没有任何效果。
我在我的C:\xamp\php\ext
中找到了php_intl.dll
。 php.ini
的 extension_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”扩展以获得完整的本地化功能