Laravel Herd环境下Wordpress无法写入debug.log的解决方案咨询
在Laravel Herd中解决WordPress调试日志无法写入的问题
你在Laravel Herd环境下运行WordPress时,配置了标准WP_DEBUG参数、自定义write_log函数,甚至直接调用error_log,都无法写入wp-content/debug.log文件,以下是可行的解决技巧:
1. 修复文件与目录权限
Herd的PHP运行进程用户和本地用户可能不一致,导致WordPress没有写入权限:
- 手动创建日志文件并开放写入权限:
touch wp-content/debug.log chmod 666 wp-content/debug.log - 确保wp-content目录本身有足够权限:
chmod 755 wp-content
2. 手动指定日志文件绝对路径
WordPress自动识别路径可能在Herd环境下失效,直接用绝对路径定义WP_DEBUG_LOG:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', ABSPATH . 'wp-content/debug.log' ); // 明确指定路径 define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
ABSPATH是WordPress内置的根目录常量,能确保路径绝对正确。
3. 检查Herd的PHP配置
- 在WordPress根目录创建
phpinfo.php文件:<?php phpinfo(); ?> - 访问该文件,查找
error_log配置项,确认它没有指向不可写入的路径,也没有被禁用。 - 同时检查
disable_functions列表,确保error_log不在其中,若有则移除。
4. 强制指定路径测试error_log
跳过WordPress的常量限制,直接用error_log的第三个参数指定路径测试:
error_log('测试日志', 3, ABSPATH . 'wp-content/debug.log');
如果这条能写入,说明是WordPress的路径识别问题,按步骤2调整即可。
内容的提问来源于stack exchange,提问作者Rvervuurt
相关产品推荐
相关产品推荐

