首次安装Magento遇PHP Extension intl就绪检查失败,求解决办法
Hey there, let's work through this intl extension issue step by step — I’ve dealt with this exact problem when setting up Magento before, so I know how frustrating it can be when you tweak settings and either break your server or still get the error. Here’s what you need to do:
1. Make Sure You’re Editing the Right php.ini File
First off, Apache might be using a different php.ini than the one you’re editing. To confirm:
- Create a file named
phpinfo.phpin your htdocs folder with this code:<?php phpinfo(); ?> - Access it via
localhost/phpinfo.php, then look for the Loaded Configuration File line — this tells you exactly which php.ini Apache is using. Don’t waste time editing the wrong file!
2. Correctly Enable the intl Extension
- Open the correct php.ini file, find the line that looks like
;extension=intl(or;extension=php_intl.dllfor older PHP versions). - Remove the leading semicolon to uncomment it. For PHP 7.0+, the line is usually just
extension=intl(nophp_prefix or.dllsuffix in some setups — stick to whatever format is already in your php.ini for other extensions).
3. Place ICU DLLs in the Right Directory
This is the mistake most people make! Instead of copying the 6 icu*.dll files to apache/bin/, put them directly into your PHP installation root directory (e.g., xampp/php/ or wamp/bin/php/phpX.X.X/).
PHP needs these DLLs to load the intl extension, and it looks for them in its own directory first. Putting them in Apache’s bin folder can cause path mismatches that break your server.
4. Restart Services Properly
- Stop Apache (and MySQL if it’s running) completely, wait 10 seconds, then start them back up. A full restart ensures the new php.ini settings and DLLs are loaded correctly.
5. Verify the Extension is Loaded
Go back to phpinfo.php and search for the "intl" section. If you see details about the extension (like version, ICU version, etc.), it’s working! Now run Magento’s readiness check again — the error should be gone.
If You’re Still Stuck:
- Check Apache’s error log (usually in
apache/logs/error.log). It’ll tell you exactly why the intl extension failed to load (e.g., missing a specific ICU DLL, version mismatch between PHP and ICU files). - If you’re using an integrated environment like XAMPP/WAMP, avoid manually replacing DLLs — use the built-in extension manager to enable intl instead (it handles the DLL placement automatically).
内容的提问来源于stack exchange,提问作者Nishant Sharma

