When working with Laravel or any PHP project using Composer, you might encounter an error like this:
Problem 1
- Root composer.json requires PHP extension ext-intl * but it is missing from your system. Install or enable PHP's intl extension.
Problem 2
- mpdf/mpdf requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
This error usually appears when you try to install or update packages such as mpdf/mpdf, PhpSpreadsheet, or maatwebsite/excel in your PHP project.
Let’s understand what causes this and how to fix it step by step.
⚙️ What Causes This Error?
The error occurs because your PHP environment doesn’t have two required extensions enabled:
- intl (Internationalization extension) — used for localization, date/time formatting, etc.
- gd (Graphics Draw extension) — used for image processing and generating PDFs or Excel files.
Even though these extensions are included with PHP by default, they are often disabled in the configuration file.
🧩 Step-by-Step Solution
Step 1: Open the php.ini File
If you’re using XAMPP, your php.ini
file is located at:
C:\xampp\php\php.ini
You can open it using Notepad, VS Code, or any text editor.
Step 2: Enable the Required Extensions
In the file, press Ctrl + F
and search for:
;extension=intl
;extension=gd
You’ll see both lines commented out with a semicolon (;
).
Remove the semicolon at the beginning of each line:
✅ Before:
;extension=intl
;extension=gd
✅ After:
extension=intl
extension=gd
Save the file once you’ve made the changes.
Step 3: Restart Apache Server
After saving, open your XAMPP Control Panel and restart Apache:
- Click Stop next to Apache
- Then click Start again
This ensures the changes in php.ini
take effect.
Step 4: Verify the Extensions
Open Command Prompt or PowerShell, and type:
php -m
This command lists all enabled PHP extensions.
Make sure you can see both intl
and gd
in the list.
Step 5: Run Composer Again
Now, go back to your project directory and run:
composer install
If everything is set up correctly, Composer will install the required dependencies without any errors.
🧰 Optional: Temporary Workaround
If you’re in a hurry and just want to bypass the check temporarily (not recommended), you can run:
composer install --ignore-platform-req=ext-intl --ignore-platform-req=ext-gd
However, this only skips the requirement—it doesn’t solve the underlying problem. Your project may not work properly if those extensions are truly needed.
✅ Final Thoughts
This issue is common among developers using XAMPP or WAMP for local PHP development.
The solution is simple: enable the missing extensions and restart your server.
Once done, Composer will run smoothly, and your project will load all dependencies successfully.