AH00112: DocumentRoot does not exist Nginx / Apache Origin: Edge & web server OSI layer 7 · Application Last updated 5 Nov 2026

Apache: AH00112: Warning: DocumentRoot [/var/www/example.com/public_html] does not exist

A virtual host points to a directory that doesn't exist.

Exact message you may see AH00112: Warning: DocumentRoot [/var/www/example.com/public_html] does not existDocumentRoot does not exist Apache[core:warn] AH00112: Warning: DocumentRootWarning: DocumentRoot does not exist
Seen on: Apache Linux

Meaning

Create the directory (mkdir -p) or fix the DocumentRoot path/typos. Apache warns at startup; requests to that vhost then return 404/403. Check symlinks and mounts (unmounted storage).

Common causes

  • DocumentRoot typo
  • Directory not created or mount missing
  • Deployment renamed the folder (symlink current)
  • Wrong vhost copied from another server
  • Permissions on parent

⚡ Quick fix

  1. sudo mkdir -p /var/www/example.com/public_html
  2. Correct the DocumentRoot
  3. Verify symlinks/mounts exist at start

Detailed fix by platform

Linux

  1. ls -ld /var/www/example.com/public_html && sudo apachectl -S

How to diagnose

  1. Path — Exists?
  2. Mount — Present?
  3. Vhost — Correct?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Edge & web server. Errors that are often confused with or caused by this one (click to open):

AH00015: Unable to open logs — Apache: AH00091: apache2: could not open error log file /var/log/apache2/error.log. AH00015: Unable to open logs (Permission denied) (Nginx / Apache)AH00015: Unable to op…AH00072: make_sock: could not bind to address 0.0.0.0:80 — Apache: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 / AH00015: Unable to open logs (Nginx / Apache)AH00072: make_sock: c…AH00128: File does not exist — Apache: [core:info] AH00128: File does not exist: /var/www/html/favicon.ico (404) (Nginx / Apache)AH00128: File does no…AH00526: Syntax error on line of apache config — Apache: AH00526: Syntax error on line 12 of /etc/apache2/sites-enabled/site.conf: Invalid command 'Foo', perhaps misspelled or defined by a module not included in the server configuration (Nginx / Apache)AH00526: Syntax error…AH00558 — Apache: AH00558: apache2: Could not reliably determine the server's fully qualified domain name (Nginx / Apache)AH00558AH01276: Cannot serve directory: No matching DirectoryIndex — Apache: [autoindex:error] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive (Nginx / Apache)AH01276: Cannot serve…AH01630: client denied by server configuration — Apache: [authz_core:error] AH01630: client denied by server configuration: /var/www/html/ (Nginx / Apache)AH01630: client denie…apache2.service: Failed with result 'exit-code' — systemd: apache2.service: Main process exited, code=exited, status=1/FAILURE — Job for apache2.service failed because the control process exited with error code (Nginx / Apache)apache2.service: Fail…AH00112: …

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.