Joomla shows error 500 or a blank page – what helps after a PHP update
Yesterday the website was running, today it shows "500 Internal Server Error", an empty white page or – with Joomla 4, 5 and 6 – the message "Whoops, looks like something went wrong". Very often a change of the PHP version at the host or an update is behind it. This is how to find the cause without breaking anything.
First: delete nothing, back up
Before you change anything, back up files and database – via your host's customer menu or, if the back end still works, with your backup extension. Do not hastily restore an old backup: you would lose newer content, and the cause remains.
Step 1: What has changed?
Did your host switch the PHP version (often announced by e-mail)? Was Joomla or an extension updated? Did the website move? The answer usually points the way already.
Step 2: Switch the PHP version back for now
In the host's customer menu you can usually choose the PHP version yourself. If the website runs again with the previous version, you know the cause. This is a bridge, not a solution – and for old PHP versions some hosts charge extra (what that costs and what to do instead).
Step 3: Read the error message
The exact cause is in the error log, which most hosts show in the customer menu. It names the file and the line. Alternatively you can make the message visible on the page for a moment: in the file configuration.php in the main folder set the line public $error_reporting = 'default'; to 'maximum' – and set it back afterwards, so visitors see no error messages.
Step 4: Typical messages and what they mean
| Message | What is behind it |
|---|---|
Call to undefined function each() | An extension uses a function that no longer exists since PHP 8.0 (likewise create_function()). |
Array and string offset access syntax with curly braces is no longer supported | Old code from PHP 7 days; since PHP 8.0 this is an error. |
Deprecated: … | Only a notice, not a crash – but it shows what will break with the next PHP update. |
Allowed memory size of … bytes exhausted | Not enough memory for PHP; the limit (memory_limit) can usually be raised in the host's customer menu. |
Whoops, looks like something went wrong | The error page of Joomla 4, 5 and 6; the cause is in the error log. |
| Error 500 right after a move | Often the .htaccess does not suit the new server: rename it as a test. |
The path in the message gives away the extension: /plugins/…, /components/com_…, /modules/… or /templates/….
Step 5: Switch off the extension at fault
If the back end still works, disable the extension under "System → Manage Extensions". If it does not, phpMyAdmin helps: in the table …_extensions (before the underscore is your website's prefix) set the column enabled of the extension's entry to 0 – back up first. If you cannot get into the back end at all, our guide Lost your Joomla password? helps too.
With Joomla 3 the error is a symptom
If your website still runs on Joomla 3, the error 500 is usually just the visible sign: Joomla 3 has had no updates since 2023, no paid ones since February 2025, and many of its extensions were never adapted to PHP 8. A repair buys time; for good only the move to Joomla 6 helps.
Is your website still running on Joomla 3?
Since 17 February 2025 there have been no security updates for it – not even paid ones. We bring your website to Joomla 6: prepared on a copy, switched only after your approval.
See Joomla 3 to 6With Joomla 4, 5 or 6: after an update
Here it is almost always an extension that does not suit the new version. Before a major update Joomla shows a pre-update check under "System → Update Joomla" that lists which extensions are compatible; update those first. We take over the move to Joomla 6 completely if you wish: Joomla update and migration.
Stuck? You can get help with a single error from us without a maintenance contract: €100 net per hour, billed in 15-minute steps. Send us the error message or give us a call.
See Joomla support