Magento 2 HTTP 500 “internal server error”: causes and step-by-step fixes
Key takeaways
- A Magento 500 error is a generic signal that something failed on the server, so your error logs are where every fix should start.
- The four most common triggers are file permission errors, insufficient PHP memory, broken .htaccess rules, and third-party extension conflicts.
- Most fixes take a few SSH commands, and enabling Developer Mode turns the blank 500 screen into a readable error you can act on.
- The cause usually maps to a recent change like an install, upgrade, or migration, so when the error started is your fastest clue to which fix you need.
The HTTP 500 “Internal Server Error” is a common error you will encounter while working with Magento websites. This article explains the Magento 2 HTTP 500 Internal Server Error fixes, the possible reasons why your website is getting this error type, and how to solve it.
Host Magento at full throttle.
Get secure, reliable Magento hosting so you can scale faster.
What is the HTTP 500 internal server error?
The HTTP 500 Internal Server Error is a standard HTTP status code that indicates the server is experiencing something wrong. Normally, it will occur when performing a Magento installation or upgrade on your Magento 2 websites.
You will also receive this error while installing, upgrading, or removing Magento components such as patches, extensions, themes, etc. To better understand the HTTP 500 Internal Server Errors in Magento 2, you will need to check the server error logs to get more detailed information about this error.
Common HTTP 500 causes at a glance
Here are the possible reasons why your Magento website gets HTTP 500 Internal Server Errors, and the fix that matches each one:
| Cause | What points to it | Where to go |
| Permission issues | Error appears on the admin panel or after an update | Fix file permissions |
| Memory limitation | Error appears on product or checkout pages | Increase the PHP memory limit |
| .htaccess errors | Started after installing a patch, extension, or theme | Repair the .htaccess file |
| Third-party extension conflict | Started right after a module install or upgrade | Disable recent extensions |
| Maintenance mode enabled | Started during a deployment | Disable maintenance mode |
| PHP version, missing CURL, or missing modules | Error during installation | Check PHP version and extensions |
Step 1: check the error logs first
Because the frontend just displays “500,” the error itself tells you nothing about the cause. The log tells you everything. Start here before you change anything.
Check the server’s error log, typically found in one of these locations:

Then check the Magento exception log in your root directory:

Open the log and look for entries timestamped around the time the error occurred. Those entries point to the script failure, resource limit, or configuration issue behind the 500.
Step 2: enable Developer Mode for a readable error
Before you perform any action to fix a HTTP 500 Internal Server Error, enable Developer Mode. It will allow you to debug Magento and get more detailed exceptions on your error page, instead of the blank 500 screen. To enable Developer Mode, run the following command:

Here is the output:

You can check the current mode using the following command:

Step 3: fix file permissions
The Magento 2 directory structure includes default file and folder permissions. But performing a Magento 2 update or installing an extension on the server changes those default permissions. The Magento 2 HTTP 500 Internal Server Error issue mainly occurs when accessing your Magento Admin Panel or the Connect Manager.
The primary HTTP 500 Internal Server Error fix is to grant appropriate permissions to the Magento 2 site files and directories. Run these commands from your Magento root directory:

Newer Magento setups use group-write permissions instead. If your environment runs that way, use this approach:

Step 4: increase the PHP memory limit
The Magento HTTP 500 Internal Server Error may occur on the product or checkout page of your Magento 2 website when your server lacks the resources to run Magento. To fix this issue, increase the memory limit to at least 756M. You can do this in the php.ini file, the .user.ini file, or the .htaccess file.
For the php.ini file:

For the .user.ini file:

For the .htaccess file:

If you are unable to make these changes due to a lack of permissions on your server, ask your hosting provider to make them.
Step 5: disable recently installed or upgraded extensions
If you install or upgrade a new third-party extension or plugin, you may encounter the HTTP 500 Internal Server Error in Magento. It is normally caused by an incompatibility between the new extension or version and the existing modules on your Magento store.
To fix the issue, disable the extension and clear the cache:

Replace VendorName_ModuleName with your third-party extension or plugin, then check with the vendor for a compatible version.
Step 6: repair or reset the .htaccess file
The issue with the .htaccess file mainly occurs when trying to install patches, extensions, themes, etc., on your Magento website. Incorrect configurations in the .htaccess file can block these installations. In addition, syntax, typographical, and URL rewrite errors in your .htaccess file can cause Magento HTTP 500 Internal Server Errors.
To fix the issue, either remove or rename the corrupted .htaccess file, or replace it with the default Magento .htaccess file. You can grab a clean copy from the Magento GitHub repository.
Step 7: disable maintenance mode
When you enable Magento Maintenance Mode for your website, a file named .maintenance.flag is created under the Magento root directory and var directory. This changes the index.php file permission to 666, preventing web browsers from executing it.
To fix this, remove the .maintenance.flag file from your Magento root directory and var directory:

Then change the permission of the index.php file back to 755:

Step 8: check the PHP version, missing CURL, and missing modules
A few setup-level issues can also throw a 500, especially during installation.
PHP version. If your website’s PHP version is incompatible with the server configuration, you will receive an HTTP 500 Internal Server Error. Check the server logs to see what compatible PHP version you need, then install it.
Missing CURL extension. Sometimes the absent Client for URLs (CURL) extension causes the error. If you have root access, install it:

Missing modules. If your server doesn’t support some specifications, you will receive an HTTP 500 Internal Server Error during Magento installation. Use Magento Check to find what modules are missing on the server, then install them.
Step 9: the catch-all reset
If you are still experiencing the error after the steps above, you can sometimes clear it by running the full series of Magento 2 commands from your root directory. This clears generated files, redeploys static content, recompiles, reindexes, and flushes the cache:

How to prevent the 500 error going forward
The fastest 500 is the one that never reaches your customers. A few habits keep most of these errors out of production:
- Test every extension and upgrade in a staging environment before you push it live.
- Keep your PHP version and modules current and compatible.
- Reset correct file permissions after any install, update, or migration.
Site running on infrastructure you have to babysit? Built-in guardrails change that. On Liquid Web, baseline monitoring, resilience, and backups are on by default, not upsells, so a configuration slip gets caught before it takes your store down. When your site matters, confidence matters.
Magento 2 internal server error FAQs
Magento 2 internal server error next steps
A Magento 500 error feels alarming because the screen tells you nothing, but the cause is almost always one of a handful of known issues: permissions, memory, .htaccess, or an extension conflict. Once you read the logs and match the symptom to the fix, most stores are back up in minutes.
Your best first move is to check the error logs. Start with var/log/exception.log and your server’s error log, find the timestamped entry, and let it point you to the right fix above.
Of course, the errors that hurt most are the ones tied to the server itself. If you are tired of troubleshooting infrastructure that gets in your way, it may be time to move. Liquid Web’s Managed Magento hosting is built for stores that can’t afford downtime, with the performance and built-in protection serious operators depend on.
Recent articles
- Securing your site with the Magento Security Scan
- Truncating MariaDB/MySQL tables in the Liquid Web Cloud
- Importing and exporting a MySQL database
- Liquid Web Magento 2 Knowledge Base
- Magento 2 Help: Frequently Asked Questions (FAQ)
- Fully Managed Magento Hosting
Ready to get started?
Get the fastest, most secure Magento hosting on the market
Additional resources
Fix CORS errors in Magento 1 or 2 multi-stores using a CDN →
Learn to fix Magento CORS errors and restore connected access.
Fixing Magento issues with “error processing your request” →
Resolve “processing your request” errors with simple troubleshooting steps.
How to enable system error logging in Magento 1 →
Troubleshoot common errors and keep your store running smoothly.
