PHP Plesk 环境下 PHP 错误日志文件的正确位置与排查指南

在 Plesk + Ubuntu 环境中,PHP 错误日志默认不生成于网站根目录下的 log/php_errors/,而是统一存放在 /var/www/vhosts/<domain>/logs/ 或系统级路径 /var/www/vhosts/system/<domain>/logs/,需确认 log_errors = On 及日志路径权限配置。

在 Plesk + Ubuntu 环境中,PHP 错误日志默认不生成于网站根目录下的 `log/php_errors/`,而是统一存放在 `/var/www/vhosts//logs/` 或系统级路径 `/var/www/vhosts/system//logs/`,需确认 `log_errors = On` 及日志路径权限配置。

在 Plesk 管理的 Linux 服务器(如 Ubuntu 20.04)上,PHP 错误日志的行为与 Windows 版 Plesk 存在显著差异:它不遵循 log/php_errors/websitename/php_error.log 这类自定义子目录结构,而是严格遵循 Plesk 的标准化日志布局。即使您已在 php.ini 中启用 log_errors = On,若未指向正确的日志路径或权限不足,错误日志仍不会生成。

✅ 正确的日志存储路径

Plesk 默认将每个域名的 PHP 错误日志写入以下两个位置之一(优先级从高到低):

? 注意:文件名固定为 php_error_log(无 .log 后缀),且不按子目录分站点,每个域名对应一个独立文件。

? 配置验证与调试步骤

  1. 确认全局 PHP 设置生效
    在 Plesk → Tools & SettingsPHP Settings 中,确保 log_errors 为 On,并检查 error_log 值是否为空(若为空,则使用 Plesk 默认路径;若被手动设为绝对路径,请确保该路径存在且 Web 服务器用户(如 www-data 或 apache)有写权限)。

  2. 验证当前站点实际生效的 php.ini
    创建临时脚本 info.php:

    <?php phpinfo(); ?>

    访问后查找 Loaded Configuration File 和 error_log 行,确认配置来源及日志路径是否被覆盖。

  3. 手动触发错误测试日志生成
    在网站根目录下创建测试文件 test-error.php:

    <?php
    error_log("【PHP Error Log Test】This is a manual log entry.", 0);
    trigger_error("Intentional E_USER_WARNING for testing", E_USER_WARNING);
    ?>

    执行后立即检查上述两个 logs/ 目录中 php_error_log 文件是否更新(使用 tail -f /var/www/vhosts/example.com/logs/php_error_log 实时监控)。

⚠ 关键注意事项

? 总结

Plesk 在 Linux 下采用集中式、路径标准化的日志策略,而非 Windows 中的嵌套式结构。解决问题的核心在于:信任 Plesk 默认路径、验证配置层级(全局/域名级)、检查文件系统权限。跳过“寻找旧路径”的思维惯性,直接定位 /var/www/vhosts/*/logs/php_error_log,配合 error_log() 函数验证,即可快速定位和启用 PHP 错误日志功能。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。