Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xampp Intl extension on windows 10 can't be installed

I try to install Megento 2 on Xampp (php 7.2.5) and through installation process I find Intl extension installation error

enter image description here

I did every thing ;extension=intl to be extension=intl in php.ini

also I copied all files icu*.dll files from xampp/php to xampp/php/ext and to xampp/apache/pin directories and of course I restart Apache.

enter image description here

also download MSVCP110.dll and paste it to C:\Windows\System32

also checked PHP path in system variables and it is OK.

but until now the Intl extension never work

any help?

like image 250
Gouda Elalfy Avatar asked Feb 04 '23 21:02

Gouda Elalfy


1 Answers

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

For Windows-based Server:

Make sure the php_intl.dll file exists within your php extensions directory

  • for separately installed PHP: C:\path\to\php\ext\
  • for xampp: C:\path\to\xampp\php\ext
  • (note: your drive letter might be different)

If the file exists:

  • search for the config file (php.ini, usually in the same folder as the php executable) and open it. You can find this easy by running php --ini
  • Make sure the line “extension=php_intl.dll” is existing and not commented
  • Restart the web server (usually apache)
  • Check if the extension is enabled using phpinfo(), or run php - me in cmd

If the file doesn’t exist:

  • Check your php version by running the “php -v” command
  • Download the PHP version that corresponds to yours from the PHP Downloads Page (TS/NTS, x86/x64)
    • To find thread safety for php, run: php -i | findstr “Thread” , The version that comes with xampp is usually Thread Safety => enabled.
  • Search for the php_intl.dll file in the ext folder in that version and copy it in your php\ext folder
  • Complete the steps for the case in which the file exists above.

Trouble shooting

Some web servers are confusing because they do not use the php.ini located alongside your PHP executable. To find out where your actual php.ini resides, look for its path in phpinfo(): or in cmd run 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)

After activating an extension, save php.ini, restart the web server and check phpinfo() again. The new extension should now have its own section.

If the extension does not appear in phpinfo(), you should check your logs to learn where the problem comes from.

If you are using PHP from the command line (CLI), the extension loading error can be read directly on screen.

If you are using PHP with a web server, the location and format of the logs vary depending on your software. Please read your web server documentation to locate the logs, as it does not have anything to do with PHP itself.

Common problems are the location of the DLL, the value of the " extension_dir" setting inside php.ini and compile-time setting mismatches.

If the problem lies in a compile-time setting mismatch, you probably didn't download the right DLL. Try downloading again the extension with the right settings. Again, phpinfo() can be of great help.

like image 169
CecilMerrell aka bringrainfire Avatar answered Feb 06 '23 10:02

CecilMerrell aka bringrainfire