/ โ† HTTP Error Fixes / Plesk and cPanel
In this guide
  1. How a panel server is put together
  2. Where the logs are
  3. PHP version and handler
  4. Restarting and sizing PHP-FPM
  5. Ownership and permissions on panel servers
  6. Firewalls, ModSecurity and resource limits
  7. The fix, step by step
  8. Habits that prevent panel-caused errors
  9. Questions and answers

How a panel server is put together

Both panels generate web server configuration from their own database. That has two consequences worth knowing before you change anything.

Menus and labels vary between panel versions, hosting companies and the permissions your account has, so the paths below describe where these features are usually found rather than exact clicks. If you cannot see an option, your host may have hidden it or you may need a higher access level, and their support team can confirm.

๐Ÿ’ก Before changing settings, note the current value of each one. Panels rarely show a history of changes, and being able to put things back exactly is worth the minute it takes.

Where the logs are

Plesk

In Plesk, open the domain from the Websites & Domains area and look for its Logs page. It combines the domain's logs in one browser with filters for errors and time. On disk, the same files are usually reachable through the subscription's logs folder, which is typically at /var/www/vhosts/example.co.uk/logs/ and stored under /var/www/vhosts/system/example.co.uk/logs/.

FileWritten byUse it for
error_logApachePermission errors, .htaccess problems, and PHP errors when PHP runs through Apache
proxy_error_lognginx in front of Apache502 and 504 errors, timeouts reaching Apache or PHP-FPM, nginx deny rules
access_ssl_log, proxy_access_ssl_logApache and nginxStatus codes for each HTTPS request, with user agent and time
php-fpm service logPHP-FPMPool warnings such as reaching the maximum number of children; often under /var/log/ with the PHP version in the folder name

A 504 that appears in proxy_error_log but not in error_log tells you nginx gave up waiting for Apache or PHP. A 500 with a line in error_log is an Apache or PHP problem.

cPanel

In cPanel, the Metrics section usually contains an Errors page that shows the most recent entries from the Apache error log for your account, and a Raw Access page for downloading access logs. PHP errors are often written to a file named error_log in the same folder as the script that failed, so check the site's public folder and any plugin folders over FTP or the File Manager. Server administrators with WHM or root access will find the main Apache logs, on many current cPanel servers, under /etc/apache2/logs/, with per-domain access logs in a domlogs folder there.

# Plesk, over SSH: follow both the Apache and nginx error logs while you reload the page
tail -f /var/www/vhosts/system/example.co.uk/logs/error_log \
        /var/www/vhosts/system/example.co.uk/logs/proxy_error_log

# cPanel account over SSH: find PHP error_log files written in the last day
find ~/public_html -name error_log -mtime -1 -ls

PHP version and handler

Most sudden 500 errors on panel hosting follow a change to PHP: the host retires an old version, someone switches the version to fix another site, or a plugin update needs a newer one than the domain uses.

The handler matters as well as the version. On a handler that does not run PHP inside Apache, php_value and php_flag lines in .htaccess are not understood and cause a 500. Move those settings into the panel's PHP settings page, or into a .user.ini file in the site's root folder where the host supports it.

โš ๏ธ In Plesk, if Apache is taken out of the chain so that nginx serves the site on its own, .htaccess files stop having any effect. Redirects, deny rules and rewrite rules in them silently stop working, which can turn working pages into 404s or expose folders you meant to protect. Check this setting before and after changing handlers.

Where to put extra web server directives

Plesk usually has an Apache & nginx Settings page per domain with boxes for additional Apache and nginx directives. cPanel servers accept per-account changes through .htaccess and, for administrators, include files that survive rebuilds. Use these rather than editing generated files. For example, if nginx in front of Apache gives up too early on a domain with a known slow admin task, a longer wait can be set in the additional nginx directives box:

# Plesk: additional nginx directives for this domain only
proxy_read_timeout 180s;

That line applies to every page on the domain, and a location block limited to one path has to repeat the proxy settings the panel generates, which differ between servers. Copy those from the domain's generated nginx file if you need a path-only rule, and treat any longer timeout as a stopgap. The 504 guide explains how to find and fix the slow step first.

Restarting and sizing PHP-FPM

When a PHP-FPM pool stops or runs out of workers, nginx or Apache cannot get an answer and returns 502 or 504. In both panels, PHP-FPM usually runs as a separate service per PHP version, and each domain gets its own pool.

# Plesk over SSH: check and restart the PHP 8.3 FPM service
systemctl status plesk-php83-fpm
systemctl restart plesk-php83-fpm

If the service log shows the pool reaching its maximum number of children, requests are queuing because every worker is busy. Plesk's PHP settings page often lets you change the FPM process manager values for the domain. Raise the maximum only if the server has spare memory, and look at what is keeping workers busy; the 502 guide covers sizing in more depth.

Ownership and permissions on panel servers

Panels expect files to be owned by the account's own system user. Files uploaded as root over SSH, restored from another server or extracted by a script running as a different user often break that rule, and the result is a 403, a 500 or pages that load without their images.

# Plesk: show who owns the web root and a sample file
ls -ld /var/www/vhosts/example.co.uk/httpdocs
ls -l  /var/www/vhosts/example.co.uk/httpdocs/index.php

# cPanel account: list PHP files writable by group or others
find ~/public_html -name "*.php" -perm /022 -ls

For a full walk-through of 403 causes beyond the panel, see the 403 Forbidden guide.

Firewalls, ModSecurity and resource limits

Panels ship with security tools that can refuse legitimate requests, including requests from an audit or a search engine crawler.

๐Ÿ’ก A crawl that fetches pages quickly can trip rate limits and resource limits that ordinary browsing never reaches. If errors in the audit cluster together in time, compare them with the firewall log and resource usage for the same minutes before changing any code.

The fix, step by step

Step 1

Open the right log for the domain

Take a failing URL and its time from the HTTP Error Audit. In Plesk, open the domain's Logs page, or read error_log and proxy_error_log in the domain's logs folder, since nginx records 502 and 504 errors separately. In cPanel, check the Errors page under Metrics and any error_log file in the folder of the failing script. Match the time and path before assuming a cause.

Step 2

Check the PHP version and handler

Open the domain's PHP settings in Plesk, or MultiPHP Manager in cPanel, and note the version and handler. If errors began when the version changed, the log will usually show a fatal error from old code. Move any php_value lines out of .htaccess into the panel's PHP settings, and in Plesk confirm that Apache is still in the chain if the site depends on .htaccess rules.

Step 3

Restart or tune PHP-FPM for the site

For 502 or 504 errors, check that the site's PHP-FPM service is running. In Plesk, use Services Management or restart the versioned service such as plesk-php83-fpm over SSH; on cPanel, use WHM or ask your host. If the FPM log shows the pool hitting its maximum children, find what keeps workers busy before raising the limit, and only raise it if memory allows.

Step 4

Repair file ownership and permissions

Check that site files belong to the account's own user rather than root. On Plesk, run the file system repair for the domain, such as plesk repair fs example.co.uk, in check mode first, or use Diagnose and Repair in the panel. On cPanel, set files to 644 and folders to 755, and remove group or world write access from PHP files, which some servers refuse to run.

Step 5

Review firewall and ModSecurity blocks

Search the error log for ModSecurity entries at the failure time and note the rule ID. In Plesk, switch off that single rule for the domain on its Web Application Firewall page; in cPanel, use the ModSecurity page or ask your host to exclude the rule. Check Fail2Ban, CSF or Imunify360 for banned addresses, and unban your audit or monitoring IP if it was caught by mistake.

Step 6

Check resource limits on shared plans

If the site returns 508 errors or slows down during busy periods, open the Resource Usage page in cPanel, where your host provides it, and look for CPU, memory or entry process limits being reached at the times of the errors. Reduce the load with page caching and by moving heavy scheduled tasks to quiet hours, or ask the host about a plan with higher limits.

Step 7

Retest the site and each failing URL

Request each fixed URL with curl -sI and confirm a 200, then load a few pages in a private browser window to check that redirects and images still work after any handler or permission change. Re-run the HTTP Error Audit across the whole site, because a panel setting applies to every page on the domain, not only the one you tested.

Habits that prevent panel-caused errors

Redirect rules in Plesk have their own guide, fixing redirects in Plesk, and certificate problems are covered in the SSL errors guide.

Questions and answers

1. Where are the error logs in Plesk?

Open the domain from Websites and Domains and look for its Logs page, which lets you filter Apache and nginx logs by type and time. On disk, the files are usually in the domain logs folder, reachable at /var/www/vhosts/example.co.uk/logs/ and stored under /var/www/vhosts/system/. Read error_log for Apache and PHP problems and proxy_error_log for errors recorded by nginx, which is where 502 and 504 failures usually appear. Exact menu labels vary between Plesk versions.

2. Where do I find PHP errors in cPanel?

Look at the Errors page in the Metrics section, which shows recent entries from the Apache error log for your account. PHP errors are also often written to a file called error_log in the same folder as the script that failed, so check the public_html folder and the folders of any plugins or themes. If you have SSH access, searching for recently modified error_log files is a quick way to find the right one.

3. How do I restart PHP-FPM in Plesk?

Administrators can usually restart PHP services from the Services Management page under Tools and Settings. Over SSH, the Plesk-supplied PHP builds run as separate services named after their version, such as plesk-php83-fpm, which you can check and restart with systemctl. Saving the PHP settings for a domain also reloads that domain pool. On shared Plesk hosting without administrator access, ask your host to restart the service if the site returns 502 errors.

4. Why did my site break after changing the PHP version in the panel?

Each new PHP version removes functions and behaviours that older code relied on, and some plugins or themes are not updated in time. The error log will show a fatal error naming the file involved. Switching back to the previous version, if your host still offers it, restores the site quickly. The lasting fix is to update or replace the incompatible code, because hosts retire old versions and you will eventually have to move.

5. Can ModSecurity in Plesk or cPanel cause 403 errors?

Yes. ModSecurity rules block requests that look like attacks, and generic rule sets sometimes match normal form submissions, search queries or crawlers. The error log records the rule ID for each block. In Plesk you can usually switch off individual rules for a domain on its Web Application Firewall page. In cPanel you can turn ModSecurity off per domain, but asking your host to exclude only the specific rule is safer than disabling protection entirely.

6. What does 508 Resource Limit Is Reached mean?

It usually appears on shared hosting that uses CloudLinux, where each account has limits on CPU, memory and the number of simultaneous processes. When your site reaches one of those limits, extra requests are refused with a 508 page. It often happens during traffic spikes, heavy scheduled tasks or fast crawls. Check the Resource Usage page in cPanel if your host provides it, add page caching, and talk to your host if the limits are regularly reached.

7. Is it safe to edit Apache or nginx configuration files on a Plesk server?

Editing the files Plesk generates is risky, because Plesk rebuilds them from its own settings and can overwrite your changes without warning. Use the panel instead: the Apache and nginx Settings page for a domain usually has boxes for additional directives, and those are kept when the configuration is rebuilt. If you need a server-wide change, check the Plesk documentation for the supported way to add custom templates or include files.

Check every URL on your panel-hosted site

The HTTP Error Audit requests every URL in your crawl scope, records the status code and response time, follows redirects and flags anything outside the 200 range, giving you the URLs and times to match against your panel logs.

Open HTTP Error Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All HTTP Error Fixes  ·  Redirects in Plesk  ·  Security Headers in Plesk  ·  500 Internal Server Errors  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.