Troubleshooting & Common Errors

A Guide to Reviewing Error Logs in cPanel and DirectAdmin for Diagnosing Issues

By the Domain India teamPublished 12 min read
Knowledge base article
Contents (10 sections)

When your website shows a blank page, a 500 error or a feature that silently stops working, the reason is almost always written in a log. This guide shows where the logs are in cPanel and DirectAdmin, what each one records, and how to turn a log line into a fix.

Key takeaways

In cPanel, open Metrics › Errors for recent web server errors, then look for a file called error_log in the same folder as the failing script: that is where PHP usually writes its errors. Metrics › Raw Access gives you the access log: who requested what, and which status code they got. Match the log line to the exact time you reproduced the problem. On DirectAdmin each domain has its own error and access log, under System Info & Files › Site summary & logs.

1. Which log answers which question

Your questionLog to openWhere
Why did this page give a 500 or 403?Web server error logcPanel: Metrics › Errors
Which PHP line crashed?PHP error_log fileThe folder of the failing script
Who requested this page, and what did they get?Access logcPanel: Metrics › Raw Access
What went wrong inside WordPress?WordPress debug.logwp-content/debug.log, once turned on
Is my account hitting its limits?Resource usage and faultscPanel: Metrics › Resource Usage

The last row is not a log, but a 500, 503 or 508 that comes and goes is often a resource limit rather than a code fault. See How to check your hosting resource usage.

2. cPanel: Metrics › Errors

  1. Reproduce the problem and note the time.
    Load the failing page with a unique query string such as ?t=logtest1, so you can recognise your own request later.
  2. Log in to cPanel.
    Use the login button on your hosting service in the client area, or see How to login to cPanel.
  3. Open Metrics › Errors.
    It lists the most recent web server errors for your account, newest first.
  4. Find the line that matches your time and page.
    Older lines are history.

This view shows recent entries only. For an error from days ago, reproduce it rather than hunting for the old line.

cPanel Metrics Errors page showing no recent web server errors or suEXEC events for example.com
cPanel Metrics › Errors, here with no recent entries.
On cPanel, test with a fresh query string

Our cPanel servers run nginx in front of Apache as a caching proxy, and it can keep serving a stored copy of a page for up to 120 minutes (measured 22 September 2026). A request served from that cache never reaches Apache, so it writes no log line. Add ?t= with a new value each time you test, so your request reaches Apache and gets logged.

3. The error_log file next to your script

When a PHP script fails, PHP often writes the message to a file called error_log in the same folder as that script: for example public_html/error_log for the home page, or public_html/wp-admin/error_log for a WordPress admin problem. A site in a subfolder or an addon domain has its own error_log in its folder.

Open File Manager, go to the folder of the failing page and open error_log; the newest lines are at the bottom. See How do I use the File Manager. These files count towards your disk space, so once the cause is fixed you can delete one; PHP creates a fresh file the next time something fails.

4. Raw Access: who requested what

The access log records each request that reached the web server: IP address, time, page, status code and browser or bot name. Use it to see which pages fail and for whom, or to spot a bot hammering one URL.

In cPanel, open Metrics › Raw Access and download the log for your domain. It is a compressed .gz file; open it with any archive tool and read it in a text editor.

A typical line looks like this:

text
203.0.113.5 - - [22/Sep/2026:10:15:03 +0000] "GET /checkout/?t=logtest1 HTTP/1.1" 500 1843 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

Left to right: the visitor's IP, the time with its time-zone offset, the request, the status code (here 500), the response size, the referring page and the user agent.

The example access-log line split into seven labelled parts: IP address, time, request, status code 500, response size, referrer and user agent
Each part of an access-log line
The access log is not a visitor count

On our cPanel servers, pages served from the nginx cache never reach Apache, so they are missing from the access log and from Metrics › Visitors, which reads it. Use it to find errors and suspicious requests, not to count visitors.

5. How to read an error line

Most error lines have the same parts. Here is an Apache error from a bad .htaccess line:

text
[Mon Sep 22 10:15:03.412345 2026] [core:alert] [pid 48211] [client 203.0.113.5:51234] /home/youruser/public_html/.htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration

And a PHP error from an error_log file:

text
[22-Sep-2026 10:15:03 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /home/youruser/public_html/includes/db.php:12

Four things matter in every line:

  • The time. It follows the server's clock, which may not be Indian Standard Time. Your own ?t= test request is the easiest way to line the two up.
  • The severity. Fatal error and alert stopped the page. Warning, Notice and Deprecated rarely cause an error page.
  • The file and line number. db.php:12 means line 12 of that file. A path inside wp-content/plugins/ or wp-content/themes/ names the plugin or theme.
  • The message. Section 6 lists the common ones.

PHP errors can also appear in Metrics › Errors inside a line containing Got error 'PHP message: …'. The part after PHP message: is PHP's own error.

6. Common messages and what they mean

The log saysWhat it meansWhat to do
Invalid command 'php_value' or 'php_flag'PHP settings written into .htaccessRemove the line; set the value in your control panel
Option ... not allowed hereA disallowed Options line (DirectAdmin)Use an allowed value or remove it
Request exceeded the limit of 10 internal redirectsA rewrite rule loops on its own targetFix the RewriteCond or RewriteRule
Permission deniedA file or folder permission is wrongUse 644 for files and 755 for folders
client denied by server configurationA Deny or Require rule refused the requestCheck the .htaccess in that folder
ModSecurity: Access deniedA security rule blocked the requestSend support the URL, time and rule id
Allowed memory size of ... bytes exhaustedOne script reached PHP's memory_limitRaise memory_limit in the panel, or fix the script
Call to undefined functionA missing PHP extension, or old code on a newer PHPEnable the extension or update the code
End of script output before headersThe script crashed or was stopped before it answeredCheck the PHP error_log and resource faults
  • php_value and php_flag always give a 500 on our Linux shared servers. None of them run PHP as an Apache module, so Apache doesn't recognise these lines. Set PHP values in your control panel: see How to fix "Allowed memory size exhausted" PHP errors.
  • DirectAdmin Options may use only Indexes, IncludesNOEXEC, MultiViews, SymLinksIfOwnerMatch, FollowSymLinks or None. Any other value gives a 500.
  • Never set 777 to cure Permission denied. It is unsafe and can cause a 500 on its own.
  • 404s are usually in the access log, not the error log: look for status 404 in the Raw Access file.

For the other status codes, see the 500 error guide, the 403 Forbidden guide and the "Resource Limit Is Reached" guide.

7. DirectAdmin and Webuzo

DirectAdmin keeps a separate error log and access log for each domain: open System Info & Files › Site summary & logs and use the domain's Error log or Usage log (access log) button. DirectAdmin normally stores older, compressed monthly logs in domains/yourdomain.com/logs in your home folder, next to public_html, which you can reach with the DirectAdmin File Manager. The PHP error_log file next to your script works the same way as on cPanel.

DirectAdmin Site summary and logs page under System Info and Files, listing example.com as Active with bandwidth, disk usage and View stats, Usage log and Error log buttons
System Info & Files › Site summary & logs: each domain has Usage log (access) and Error log buttons.

Webuzo shows errors on its Error Log page; find it with the search box at the top of the Webuzo panel.

On either panel, if you can't find the log you need, open a ticket with the page, the time and what you were doing. We will read the logs for your account and send you the relevant lines.

8. Searching a log quickly

Download the log or the error_log file and search it instead of scrolling. On Linux, macOS or Windows with WSL:

bash
# Only the fatal PHP errors
grep "Fatal" error_log

# The last 50 lines, newest at the bottom
tail -n 50 error_log

# Requests that got a 500, from a compressed access log
zcat yourdomain.com-ssl_log.gz | awk '$9 == 500' | tail -n 20

If your account has SSH access, the same commands work on the server, and tail -f error_log shows new lines as you reload the page. Without SSH, File Manager and a downloaded copy do the same job.

9. Good log habits

  • Turn debugging off when you are done. WordPress's WP_DEBUG_LOG writes to wp-content/debug.log, which anyone can download if they know the address. Turn it off and delete the file after testing.
  • Never show errors to visitors on a live site. Displayed errors reveal file paths and code. Log them instead.
  • Fix warnings that repeat, and check Metrics › Errors after every plugin update, PHP version change or .htaccess edit. A notice on every page load can grow an error_log until it fills your disk.

10. When to ask us, and where Domain India hosting fits

Open a ticket if the log names a file you can't change, shows a ModSecurity block, or can't be found. Include:

  • the exact URL and the time of the error, with time zone;
  • the log line you found, copied as text rather than as a screenshot;
  • what changed just before it started.

Support is on 24/7 live chat, and tickets get a first response within 15 minutes; how long a fix takes depends on the issue. There is no phone support. Please don't send passwords in a ticket.

Domain India Linux shared hosting runs Apache, and cPanel gives you Metrics › Errors, Raw Access and Resource Usage, so you can read your own logs and faults.

cPanel Growth
₹200/mo + GST
  • 50 GB NVMe SSD Storage
  • 100 GB Monthly Bandwidth
  • 5 Websites
  • 50 Email Accounts
See plan details

The price on the card is live and excludes 18% GST. If your site has outgrown shared hosting, a VPS gives you full access to every server log.

Where do I find the error log in cPanel?

Log in to cPanel and open Metrics › Errors. It lists the most recent web server errors for your account, newest first. PHP errors are often written to a separate file called error_log in the same folder as the script that failed, which you can open in File Manager.

What is the error_log file in my public_html folder?

It is where PHP writes errors from scripts in that folder. Each folder with a failing script can have its own error_log file, for example public_html/error_log or public_html/wp-admin/error_log. The newest lines are at the bottom. You can delete it once the cause is fixed, and PHP creates a new one if an error happens again.

How do I download my website's access logs in cPanel?

Open Metrics › Raw Access in cPanel and download the log for your domain. It is a compressed .gz file that you can open with any archive tool and read in a text editor. Each line shows the visitor's IP, the time, the page requested, the status code and the browser or bot.

Why is my error not showing in the log?

On Domain India cPanel servers, a caching proxy can serve a stored copy of a page for up to 120 minutes, and a cached request never reaches the web server, so it leaves no log line. Reload the page with a unique query string such as ?t=test1 and check again. Also check the error_log file in the script's folder, because PHP errors are often written there instead.

Where are the error logs in DirectAdmin?

DirectAdmin keeps an error log and an access log for each domain, shown under System Info & Files › Site summary & logs, and normally keeps older monthly archives in domains/yourdomain.com/logs in your home folder. If you can't find them, open a support ticket and we will read the logs for you.

Ready to find the cause? Start with Metrics › Errors and your error_log file, then use the 500 error guide or the 403 guide to fix what they point to, or open a ticket with the URL, the time and the log line.

Can't make sense of a log line?

Send us the page address, the time of the error and the log line you found, and we will read your account's logs with you.

Open a support ticket

Ready when you are

Get cPanel hosting from ₹125/mo + GST

See plans

Was this article helpful?

Your answer helps us decide what to improve next.

Still need help? Open a support ticket and our team will reply.

Prefer an app? Add this site to your home screen.Get the app