国际扩展:安装 php_intl.dll

Posted

技术标签:

【中文标题】国际扩展:安装 php_intl.dll【英文标题】:intl extension: installing php_intl.dll 【发布时间】:2010-11-29 21:41:35 【问题描述】:

我正在尝试找到 php_intl.dll 并安装它。

有人有什么建议吗?

【问题讨论】:

【参考方案1】:

要使php_intl.dll 扩展正常工作,您需要在PATH 的文件夹中包含以下文件:

icudt36.dll icuin36.dll icuio36.dll icule36.dll iculx36.dll icutu36.dll icuuc36.dll

默认情况下,它们位于您的 PHP 目录中,但该目录不一定在您的 PATH 中(它不适合我,使用 xampp)

这必须在您的全局路径中,而不仅仅是您的用户路径。要设置全局路径,请转到系统信息(windows key + PAUSE),然后转到高级系统设置(Vista+)或高级(XP),然后单击“环境变量”按钮并将适当的目录添加到系统变量列表中的PATH 变量。

【讨论】:

很好的答案!赞成。只是一个注释,可能会有所帮助,如果您使用的是 xampp,请在更改“环境变量”后重新启动 xampp。 答案很棒。帮助我解决了 Yii2 MessageFormater.php 的问题。非常感谢 刚刚在另一台计算机上再次遇到同样的问题。希望我能投票两次。 对于 php7.1.6,DLL 包含数字 57 而不是 36。解决方案仍然只是将 php 目录添加到 PATH。 正如 user2650636 回答中指出的那样,您还可以将 icu*.dll 文件复制到您的 apache/bin 文件夹(或您的主要可执行文件所在的任何文件夹)中,而不是将它们添加到路径中。虽然并不完美,但这允许不同版本的 PHP 在同一系统上运行。【参考方案2】:

http://windows.php.net/download/ 的包都包含位于子目录ext/ 中的php\_intl.dll。 您所要做的就是检查您的extension_dir 是否指向正确的目录并添加(或取消注释)extension=php\_intl.dll 指令。

【讨论】:

更改 php.ini 文件后不要忘记重启 Apache。【参考方案3】:

我安装了 XAMPP 1.8.3-0 和 PHP 5.5.0。

1) 编辑 php.ini:

来自

;extension=php_intl.dll

extension=php_intl.dll

注意:修改后需要保存文件(php.ini),需要重启Apache Server。

2) 只需复制所有 icu* * * *.dll 文件:

来自

C:\xampp\php

C:\xampp\apache\bin

然后国际扩展工作!!!

【讨论】:

@rab 确保您安装了所需的 VC++ 可再发行软件包版本,其中包含 msvcp* DLL。您提到的文件msvcp110.dll 应该包含在 VC++ 2012 Redist 包中。 太好了,在 Windows 10 上,Jeremy Warne 的回答不起作用,但它有效。谢谢! 这是我的问题的修复。在我用 PHP7 安装另一个 xampp 包后,这个问题发生在我身上。谢谢! 就我而言,它是extension=intl【参考方案4】:

有同样的问题...我通过在我的驱动器中搜索 icu**.dll 找到了所需的文件,并找到了上面列出的文件,但在 php 文件夹中使用 46 而不是 36。我将它们复制粘贴到 apache/bin 文件并尝试启动 apache,它终于启动了。在 Server Checks 页面上,它现在已从 Yellow Check 更改为 Green OK。希望这会有所帮助。

【讨论】:

我以为这是我的问题,但事实证明我的 PATH 变量中有错字!确保您的路径绝对正确,并且您可能不需要复制到 apache/bin【参考方案5】:

如果您阅读错误消息,“icuuc36.dll”丢失。 问题是您的 PATH 中没有 PHP 目录,或者您可以将所有“intl”文件从 php 目录复制到 apache\bin 目录。 他们是 : icudt36.dll icuin36.dll icuio36.dll icule36.dll iculx36.dll icutu36.dll icuuc36.dll

【讨论】:

【参考方案6】:

对于 WampServer 2.5Apache 2.4.9PHP 5.5.12):

默认我已经php_intl启用(你可以在left click on the wamp icon in the system tray > PHP > PHP extensions时启用它并检查它是否被标记)

为了让它正常工作,我必须复制

C:\wamp\bin\php\php5.5.12\icu**51.dll

(共 8 个文件)

C:\wamp\bin\apache\apache2.4.9\bin

然后重新启动 wamp,一切都很好。

【讨论】:

xampp 只有 6 个文件【参考方案7】:

我有 PHP 5.3.1 和 Apache

当我将extension=php_intl.dll 添加到 php.ini 并重新启动 apache 时,会出现“请求的操作失败”的警报

事件监视器上出现此错误:

Faulting application name: httpd.exe, version: 2.2.14.0, time stamp: 0x4ac181d6
Faulting module name: php5ts.dll, version: 5.3.1.0, time stamp: 0x4b051b35
Exception code: 0xc0000005

问题是缺少一些像 icudt36.dll 这样的 DLL(通过 sysinternals ProcMon 注意到),我已经下载了 php 5.3.1 zip 版本并将所有 DLL 解压缩到 PHP 文件夹。这样就解决了问题。

【讨论】:

【参考方案8】:

该包已包含在 PHP 7.2 及更高版本的扩展中,您只需取消注释 php.ini

中的以下行
extension=intl

【讨论】:

这种取消注释方法适用于大多数 Windows 的 php 扩展,但不适用于 intl。为了使 intl 工作,您还必须将所有 icu*.dll 从 php 文件夹复制到 apache\bin 文件夹。【参考方案9】:

当我遇到这个问题时,它是通过使用以下提到的步骤解决的:

编辑 php.ini:

制作

;extension=php_intl.dll 到

extension=php_intl.dll 只需从

复制所有 icu* * * *.dll 文件(任何带有 dll 扩展名的 icu 文件)

C:\xampp\php 转 C:\xampp\apache\bin

此外,如果您有 msvcp110.dll 丢失文件错误。您必须下载正确的 .dll 或直接前往http://www.microsoft.com/es-es/download/confirmation.aspx?id=30679 并安装 vcredist_x64.exe 和 vcredist_x86.exe。

现在 intl 扩展应该可以工作了 :-)

【讨论】:

【参考方案10】:

我通过将 PHP 目录添加到 PATH 变量解决了这个问题。 我只是在 Windows 环境变量中将 ;C:\xampp\php 附加到 Path 变量。

【讨论】:

【参考方案11】:

我有 IIS 7 并在 Windows 7 上使用 Microsoft Web 平台安装程序安装了 PHP。在 IIS 中,转到设置主页中的 PHP 管理器 -> PHP 扩展 -> 启用或禁用扩展。 默认情况下禁用国际扩展。

希望对你有帮助

【讨论】:

这如何回答这个问题? 我认为他正在寻找 php_intl.dll,因为他在 PHP 中启用 intl 扩展时遇到问题,至少我的情况是这样。如果没有,那我很抱歉。我的坏【参考方案12】:

你可以在终端输入这个命令:sudo apt-get install php-intl

【讨论】:

【参考方案13】:

如果您有 msvcp110.dll 丢失文件错误。您必须下载正确的 .dll 或直接前往http://www.microsoft.com/es-es/download/confirmation.aspx?id=30679 并安装 vcredist_x64.exe 和 vcredist_x86.exe,它对我有用。

【讨论】:

【参考方案14】:

有更好的方法。

我在使用 ldap、intl、curl php 扩展时遇到了同样的问题。我通过以下方式解决了这些问题:

首先,您必须通过删除以下行前面的分号 (;) 来检查 php.ini 文件中是否启用了这些扩展:

;extension=php_intl.dll
;extension=php_ldap.dll
;extension=php_curl.dll

现在您可以从您的 httpd.conf(apache 配置文件)文件中直接加载那些必要的 dll 文件(即 libeay32、libssh2、ssleay32、icu**.dll )。您不必做任何其他事情,例如将它们复制到 apache 的 bin 目录或 php 的 ext 目录。只需将它们直接添加到您的 apache 的 httpd.conf 文件中。

请注意,以下示例适用于 php 版本 5.5.x。

LoadFile  "C:/php/icudt51.dll"
LoadFile  "C:/php/icuin51.dll"
LoadFile  "C:/php/icuio51.dll"
LoadFile  "C:/php/icule51.dll"
LoadFile  "C:/php/iculx51.dll"
LoadFile  "C:/php/icutest51.dll"
LoadFile  "C:/php/icutu51.dll"
LoadFile  "C:/php/icuuc51.dll"

LoadFile  "C:/php/libeay32.dll"
LoadFile  "C:/php/libssh2.dll"
LoadFile  "C:/php/ssleay32.dll"

就是这样。现在,重新启动您的 apache 或 wamp,您就可以开始了。

【讨论】:

【参考方案15】:

在我的情况下,在用户环境中将 PHP 目录添加到 PATH 不起作用。经过一些测试,我发现它应该被添加到系统路径中(我不知道系统设置窗口这部分的名称是什么,因为我有波兰语窗口)。

【讨论】:

【参考方案16】:

/在这里挖掘/

icu*****.dll 文件移动到/ext/ 似乎也可以解决问题。

(当然如果你指定了扩展目录)

【讨论】:

【参考方案17】:

在我的xampp控制面板中,点击config打开php.ini

删除;在

;extension=php_intl.dll

然后重启apache。

【讨论】:

【参考方案18】:
    在 wampserver 的 php 扩展下,确保选中 intl 检查您的 php/v7.0/php 文件中的 extension_dir 确保该目录没有被注释并且它是准确的 (不知道这是否有贡献,但我做了所有三个)在与上述 2 相同的文件中的扩展列表中,包含与其余格式相同的 intl 文件(如果不包含)。 万事如意

【讨论】:

【参考方案19】:

我无法让 intl 在 Windows 10 上使用 PHP 7.1.7 和 PhpStorm 运行。根据此处的其他答案,我可以说这是 PATH/DLL 依赖问题,但我似乎找不到所有必需的甚至在(重新)安装 Visual C++ Redistributable 之后的文件。

我最终在我的 C: 驱动器中搜索 vcr*.dll 并在我的 C:\Program Files\Mozilla Firefox 目录中找到了 vcruntime140.dll 的副本。因此,除了对 php.ini 进行这些更改:

extension_dir = "ext"
extension=php_intl.dll

我还将我的运行时 PATH 设置为仅 PHP 目录(在我的情况下为 C:\Program Files\PHP\7.1.7)和 Firefox 目录(上图),它终于成功了!我知道它需要的不仅仅是 vcruntime140.dll,而且其他必需的 DLL 也必须在 FF 目录中(有几十个,但我没有费心去弄清楚哪些是必不可少的)。

【讨论】:

【参考方案20】:

您必须通过删除包含行上的分号来修改 php.ini 文件 扩展=php_intl.dll

之后,进入Xamp或Wamp或EasyPHP的php文件夹,复制每个包含的dll文件 重症监护室*, 将它们粘贴到您的 windows 文件中。

这对我有用。 配置:EasyPHP 开发服务器,Windows 10。

【讨论】:

以上是关于国际扩展:安装 php_intl.dll的主要内容,如果未能解决你的问题,请参考以下文章

Magento PHP 扩展国际 - XAMPP

在 Mac 上的 XAMPP 上安装 PHP 国际化扩展 (Intl)

为啥 Windows 上的 PHP 看不到扩展 php_intl.dll,即使它存在?

安装并启用 intl 扩展(用于验证器)。 - MAC(Prestashop)

PHP 启动:无法加载动态库 'php_intl.dll'- 找不到指定的模块

PDO 连接上的 CakePHP 和 XAMPP 错误