[wp-trac] [WordPress Trac] #64071: Site Health false positive: WP_DEBUG_LOG warning when debug.log is outside wp-content

WordPress Trac noreply at wordpress.org
Fri Oct 3 06:29:31 UTC 2025


#64071: Site Health false positive: WP_DEBUG_LOG warning when debug.log is outside
wp-content
-------------------------+------------------------------
 Reporter:  dannythedog  |       Owner:  (none)
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  Awaiting Review
Component:  Site Health  |     Version:  6.8.3
 Severity:  minor        |  Resolution:
 Keywords:  2nd-opinion  |     Focuses:  administration
-------------------------+------------------------------
Changes (by sabernhardt):

 * component:  General => Site Health


Old description:

> ## Description
> Site Health shows a security warning about `WP_DEBUG_LOG` being publicly
> accessible, even when the debug log file is stored outside the `wp-
> content` directory and is not publicly accessible.
>
> ## Steps to Reproduce
> 1. Configure WordPress with custom debug log location outside `wp-
> content`:
> ```php
> define('WP_DEBUG', true);
> define('WP_DEBUG_LOG', '/var/www/logs/debug.log'); // Outside wp-content
> define('WP_DEBUG_DISPLAY', false);
>
> 2.Ensure the /logs/ directory is not mapped as a public URL
> 3.Verify the file is NOT accessible via HTTP (returns 404)
> 4.Check Site Health (Tools → Site Health → Info)
>
> Expected Behavior
> Site Health should verify whether the debug log file is actually publicly
> accessible before showing the security warning.
> Actual Behavior
> Site Health shows:
>
> "Your site is set to log errors to a potentially public file"
> "The value, WP_DEBUG_LOG, has been added to this website's configuration
> file. This means any errors on the site will be written to a file which
> is potentially available to all users."
>
> This is a false positive when the log file is stored outside wp-content
> or protected by server configuration.
>
> Suggested Fix
> Enhance the Site Health check to:
> 1. Detect if WP_DEBUG_LOG points to a custom path outside wp-content
> 2. Attempt to verify if the file is publicly accessible via HTTP
> 3. Only show the warning if the file is actually in a public directory
>
> Environment
>
> WordPress Version: 6.8.3
> Server: Docker (nginx + php-fpm)
> Debug log location: /var/www/logs/debug.log (outside web root)
> Public accessibility: Verified 404 via curl -I
> https://example.com/logs/debug.log
>
> Additional Context
> This affects Docker/containerized WordPress installations where logs are
> commonly stored in separate volumes outside the public web directory for
> security and log management purposes.

New description:

 Site Health shows a security warning about `WP_DEBUG_LOG` being publicly
 accessible, even when the debug log file is stored outside the `wp-
 content` directory and is not publicly accessible.

 === Steps to Reproduce
 1. Configure WordPress with custom debug log location outside `wp-
 content`:
    {{{#!php
 define('WP_DEBUG', true);
 define('WP_DEBUG_LOG', '/var/www/logs/debug.log'); // Outside wp-content
 define('WP_DEBUG_DISPLAY', false);
    }}}
 2. Ensure the `/logs/` directory is not mapped as a public URL
 3. Verify the file is NOT accessible via HTTP (returns 404)
 4. Check Site Health (Tools → Site Health → Info)

 === Expected Behavior
 Site Health should verify whether the debug log file is actually publicly
 accessible before showing the security warning.

 === Actual Behavior
 Site Health shows:

 "Your site is set to log errors to a potentially public file"
 "The value, WP_DEBUG_LOG, has been added to this website's configuration
 file. This means any errors on the site will be written to a file which is
 potentially available to all users."

 This is a false positive when the log file is stored outside wp-content or
 protected by server configuration.

 === Suggested Fix
 Enhance the Site Health check to:
 1. Detect if `WP_DEBUG_LOG` points to a custom path outside `wp-content`
 2. Attempt to verify if the file is publicly accessible via HTTP
 3. Only show the warning if the file is actually in a public directory

 === Environment

 WordPress Version: 6.8.3
 Server: Docker (nginx + php-fpm)
 Debug log location: `/var/www/logs/debug.log` (outside web root)
 Public accessibility: Verified 404 via `curl -I
 https://example.com/logs/debug.log`

 === Additional Context
 This affects Docker/containerized WordPress installations where logs are
 commonly stored in separate volumes outside the public web directory for
 security and log management purposes.

--

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/64071#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list