Quick answer: A 500 error means PHP crashed or the web server hit a bad configuration. Read the actual error first — PHP-FPM log or wp-content/debug.log with WP_DEBUG_LOG enabled — then apply the usual fixes: deactivate the failing plugin/theme, raise memory, or repair a broken .htaccess/server block.

Overview

“HTTP 500” is a symptom, not a diagnosis: fatal PHP errors, exhausted memory, syntax errors from a bad update and web-server misconfiguration all wear the same mask. The fastest route is always the log — guessing plugins one by one is the slow path. On a VPS you have full log access, so use it.

Before you start

  • SSH access — when wp-admin is down, WP-CLI still works.
  • Know your log locations: /var/log/nginx/error.log, /var/log/php8.3-fpm.log.
  • A recent backup in case a rollback is faster than a fix.

Step-by-step guide

  1. Turn on WordPress logging (wp-config.php, above the “stop editing” line):
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);
  2. Reproduce the error, then read the last lines:
    tail -n 50 wp-content/debug.log
    sudo tail -n 50 /var/log/nginx/error.log
  3. Fatal error names a plugin/theme: deactivate it without wp-admin:
    sudo -u www-data wp plugin deactivate broken-plugin
    # or all at once: sudo -u www-data wp plugin deactivate --all
    sudo -u www-data wp theme activate twentytwentyfour
  4. “Allowed memory size exhausted”: raise memory_limit in php.ini (and WP_MEMORY_LIMIT in wp-config) — see PHP tuning.
  5. Error only on some URLs (Apache): re-generate .htaccess by re-saving permalinks; on Nginx check nginx -t.
  6. Still stuck? Roll back the last change (update, new plugin, config edit) from backup — the error started when something changed.

Common issues

  • Blank debug.log: the crash happens before WordPress loads — the PHP-FPM log has it.
  • 500 only in wp-admin: classic memory exhaustion or an admin-only plugin conflict.
  • Intermittent 500s under load: not a code bug — FPM pool exhaustion; see pm.max_children sizing.

When to contact support

If the platform itself misbehaves (disk full at the host level, VPS unresponsive), open a ticket. For application errors, include the exact log lines if you ask for guidance — “it shows 500” alone isn’t diagnosable.

Frequently asked questions

Where do I find the real error behind a 500 page?

In the logs: wp-content/debug.log once WP_DEBUG_LOG is enabled, plus the PHP-FPM and web-server error logs under /var/log — the last lines name the failing file and plugin.

How do I disable a plugin when wp-admin is down?

Over SSH with WP-CLI: wp plugin deactivate plugin-name (or --all). Renaming the plugin's folder in wp-content/plugins has the same effect if WP-CLI is unavailable.

Why do 500 errors appear only during traffic spikes?

That is capacity, not code: the PHP-FPM pool runs out of workers and requests time out. Add page caching and resize pm.max_children, or upgrade the plan.

Related articles

Need a hand? Contact Cloud2Y support →

Was this answer helpful? 0 Users Found This Useful (0 Votes)