我尝试在Xampp(php 7.2.5)上安装Megento 2,并在安装过程中发现Intl扩展安装错误
我在php.ini中做了所有;extension=intl
,成为extension=intl
我还将所有文件icu*.dll
的文件从xampp/php
复制到xampp/php/ext
和xampp/apache/pin
目录,当然我重新启动了Apache。
还要下载MSVCP110.dll
并将其粘贴到C:\Windows\System32
还检查了系统变量中的PHP路径,没关系。
但直到现在为止,国际扩展都无法使用
有什么帮助吗?
答案 0 :(得分:3)
您需要在php.ini文件的[intl]部分中进行更改-
更改以下部分
________________________________
[intl]
; intl.default_locale =
;该指令允许您在出现某些错误时产生PHP错误
;发生在intl函数中。该值是产生的错误级别。
;默认值为0,不会产生任何错误。
; intl.error_level = E_WARNING
; intl.use_exceptions = 0
____________________________________
收件人
________________________________
[intl]
intl.default_locale = en_utf8
;该指令允许您在出现某些错误时产生PHP错误
;发生在intl函数中。该值是产生的错误级别。
;默认值为0,不会产生任何错误。
intl.error_level = E_WARNING
; intl.use_exceptions = 0
____________________________________
答案 1 :(得分:3)
国际化扩展(进一步称为Intl)是»ICU库的包装,使PHP程序员可以执行各种可感知区域设置的操作,包括但不限于格式,音译,编码转换,日历操作-http://php.net/manual/en/intro.intl.php
对于基于Windows的服务器:
确保您的php扩展目录中存在php_intl.dll文件
如果文件存在:
php - me
如果文件不存在:
php -i | findstr “Thread”
,xampp随附的版本通常为Thread Safety => enabled
。 故障排除
某些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,重新启动Web服务器并再次检查phpinfo()。现在,新的扩展名应具有自己的部分。
如果扩展名未出现在phpinfo()中,则应检查日志以了解问题出处。
如果您是通过命令行(CLI)使用PHP,则可以在屏幕上直接读取扩展加载错误。
如果将PHP与Web服务器一起使用,则日志的位置和格式取决于您的软件。请阅读您的Web服务器文档以找到日志,因为它与PHP本身无关。
常见的问题是DLL的位置,php.ini中的“ extension_dir”设置的值以及编译时设置不匹配。
如果问题出在编译时设置不匹配,则可能是您未下载正确的DLL。尝试使用正确的设置再次下载扩展程序。同样,phpinfo()可以提供很大的帮助。
答案 2 :(得分:3)
Xampp设置文件名包含VCXX
,例如xampp-win32-7.2.5-0-VC15-installer.exe
,VC15表示PHP是使用Visual Studio 2017编译的,因此您需要安装Microsoft Visual C++ Redistributable for Visual Studio 2017
才能使PHP和扩展顺利运行,但是有时候已经安装了VC14或Visual C++ Redistributable 2015
就足够了。
您可以查看列表并下载Visual C ++ Redistributable here