如何在Homebrew的PHP Formula中启用错误日志?
解决Homebrew PHP 7.4错误日志不生成的问题
1. 确认修改的是Web环境对应的php.ini
Homebrew安装的PHP会区分CLI和FPM(Web服务依赖)的配置,你修改的/opt/homebrew/etc/php/7.4/php.ini可能是CLI版本的配置,并非WordPress运行时加载的文件。
- 先确认当前Web环境加载的php.ini路径:在主题
functions.php中添加phpinfo();,访问站点后找到「Loaded Configuration File」项,查看实际生效的配置文件路径。 - 如果是PHP-FPM环境,需检查
/opt/homebrew/etc/php/7.4/php-fpm.d/www.conf中的php_admin_value[error_log]配置,该项会覆盖php.ini的全局设置。
2. 修复日志文件权限
Mac上Web服务的运行用户通常是_www,需确保日志目录和文件具备写入权限:
- 修改Sites文件夹权限:
sudo chmod -R 755 /Users/samuelbacay/Sites sudo chown -R _www:_www /Users/samuelbacay/Sites - 也可手动创建日志文件后赋予权限:
touch /Users/samuelbacay/Sites/php_errors.log sudo chown _www:_www /Users/samuelbacay/Sites/php_errors.log
3. 确保PHP日志配置生效并重启服务
修改配置后需重启PHP-FPM服务,同时确认php.ini关键配置未被注释:
- 重启Homebrew PHP-FPM服务:
brew services restart php@7.4 - 检查php.ini中以下配置:
注意:不要注释error_reporting = E_ALL display_errors = Off log_errors = On error_log = /Users/samuelbacay/Sites/php_errors.logerror_log行,否则PHP会使用默认路径或停止记录。
4. 排查WordPress自身日志设置
WordPress的wp-config.php若开启WP_DEBUG_LOG,会优先将日志写入wp-content/debug.log,忽略PHP全局配置:
- 打开
wp-config.php检查是否存在:
若存在,可注释define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);WP_DEBUG_LOG,或直接到wp-content/debug.log中查看日志内容。
5. 验证error_log函数是否正常触发
先写一个简单测试脚本放在Sites目录,访问后确认日志生成:
<?php error_log('测试错误日志'); echo '日志已尝试写入'; ?>
若测试脚本能生成日志,说明PHP配置无问题,需排查post_thumbnail_class过滤函数是否未触发,或$image_path变量存在异常。
内容的提问来源于stack exchange,提问作者Samuel Bacay
相关产品推荐
相关产品推荐

