php - 无法安装 Windows 10 上的 Xampp Intl 扩展

标签 php magento xampp windows-10 intl

我尝试在 Xampp (php 7.2.5) 上安装 Megento 2,在安装过程中我发现 Intl 扩展安装错误

enter image description here

我做了每件事 ;extension=intl 成为 php.ini 中的 extension=intl

我还复制了所有 icu*.dll 文件从 xampp/phpxampp/php/extxampp/apache/pin 目录,当然我会重新启动 Apache。

enter image description here

同时下载 MSVCP110.dll 并将其粘贴到 C:\Windows\System32

还检查了系统变量中的 PHP 路径,没有问题。

但直到现在 Intl 扩展名都不起作用

有什么帮助吗?

最佳答案

Internationalization extension (further is referred as Intl) is a wrapper for » ICU library, enabling PHP programmers to perform various locale-aware operations including but not limited to formatting, transliteration, encoding conversion, calendar operations - http://php.net/manual/en/intro.intl.php

对于基于 Windows 的服务器:

确保 php_intl.dll 文件存在于您的 php 扩展目录中

  • 对于单独安装的 PHP:C:\path\to\php\ext\
  • 对于 xampp:C:\path\to\xampp\php\ext
  • (注意:您的盘符可能不同)

如果文件存在:

  • 搜索配置文件(php.ini,通常与 php 可执行文件位于同一文件夹中)并打开它。您可以通过运行 php --ini
  • 轻松找到它
  • 确保“extension=php_intl.dll”行存在且未被注释
  • 重启网络服务器(通常是apache)
  • 使用 phpinfo() 检查扩展是否启用,或者在 cmd 中运行 php - me

如果文件不存在:

  • 通过运行“php -v”命令检查您的 php 版本
  • 从 PHP 下载页面(TS/NTS、x86/x64)下载与您的版本相对应的 PHP 版本
    • 要找到 php 的线程安全,运行:php -i | findstr “Thread” ,xampp自带的版本通常是Thread Safety => enabled
  • 在该版本的 ext 文件夹中搜索 php_intl.dll 文件并将其复制到您的 php\ext 文件夹中
  • 完成上述文件存在情况下的步骤。

疑难解答

有些 Web 服务器令人困惑,因为它们不使用位于 PHP 可执行文件旁边的 php.ini。要找出实际的 php.ini 所在的位置,请在 phpinfo() 中查找其路径:或在 cmd 中运行 php --ini

Configuration File (php.ini) Path: C:\WINDOWS
Loaded Configuration File:         C:\xampp\php\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

激活扩展后,保存 php.ini,重新启动网络服务器并再次检查 phpinfo()。新扩展现在应该有自己的部分。

如果扩展没有出现在 phpinfo() 中,您应该检查日志以了解问题的来源。

如果您从命令行 (CLI) 使用 PHP,则可以直接在屏幕上读取扩展加载错误。

如果您将 PHP 与网络服务器一起使用,则日志的位置和格式会因您的软件而异。请阅读您的 Web 服务器文档以找到日志,因为它与 PHP 本身没有任何关系。

常见问题是 DLL 的位置、php.ini 中“extension_dir”设置的值以及编译时设置不匹配。

如果问题出在编译时设置不匹配,您可能没有下载正确的 DLL。尝试使用正确的设置再次下载扩展程序。同样,phpinfo() 可以提供很大的帮助。

关于php - 无法安装 Windows 10 上的 Xampp Intl 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53011854/

相关文章:

php - 以编程方式将礼品消息设置为现有订单

magento - 如何在magento的弹出框中添加注册表单?

sql - mysqldump 不创建表,然后尝试锁定/更改不存在的表

mysql - 用于本地数据库的 AngularJS API,从哪里开始?

php - SSL3_GET_SERVER_CERTIFICATE :certificate verify failed using xampp on mac

javascript - Chrome 扩展中的 XMLHttpRequest

php - 匹配到单行

ldap - PHP如何指定ldap.conf位置?

php - 脚本会导致通过命令行运行 python 时不会发生的错误

tomcat - 在xampp中升级tomcat