
在 Plesk + Ubuntu 20.04 的 Linux 环境中,PHP 错误日志默认不生成于网站根目录下的 log/php_errors/,而是统一存放于 /var/www/vhosts//logs/ 或系统级路径 /var/www/vhosts/system//logs/,需确认 log_errors = On 且 error_log 指向正确位置。
在 plesk + ubuntu 20.04 的 linux 环境中,php 错误日志默认不生成于网站根目录下的 `log/php_errors/`,而是统一存放于 `/var/www/vhosts/
Plesk 对 PHP 日志的管理遵循其自身的目录结构规范,与 Windows 版本(如旧服务器中使用的 log/php_errors/websitename/php_error.log)存在显著差异。Linux 下 Plesk 不会自动创建或写入网站子目录内的自定义错误日志路径,即使 php.ini 中已启用 log_errors = On,若未显式指定 error_log 指令,PHP 将回退至 Apache/Nginx 的全局错误日志,或由 Plesk 的 PHP 处理器(如 PHP-FPM)接管并写入其预设位置。
✅ 正确的日志路径如下(以域名为 example.com 为例):
-
主站点日志目录(推荐检查):
/var/www/vhosts/example.com/logs/
其中常见日志文件包括:
- php_error.log(PHP 解析错误、警告、Notice 等)
- domain_name.error.log(Web 服务器级错误,可能包含 PHP 致命错误的上下文)
-
系统托管站点日志目录(适用于 Plesk 管理的附加服务或子域名):
/var/www/vhosts/system/example.com/logs/
⚠️ 注意事项:
日志文件并非实时创建:PHP 首次触发错误后才会生成 php_error.log;若该文件不存在,说明暂无错误或日志未被正确路由。
-
php.ini 中仅设 log_errors = On 不足——必须明确设置 error_log 路径,否则 PHP 可能将错误输出到 SAPI(如 stdout),而被 Web 服务器丢弃。建议在 Plesk 中为每个域名单独配置:
Plesk 控制台 → 域名 → PHP 设置 → 自定义 php.ini 指令
添加:error_log = "/var/www/vhosts/example.com/logs/php_error.log"
✅ 此方式确保路径绝对、权限可控,且绕过全局 php.ini 的不确定性。
-
权限与所有权至关重要:日志目录需对 PHP-FPM 进程用户(通常是 psaadm 或 www-data)具有写权限:
sudo chown psaadm:psaadm /var/www/vhosts/example.com/logs/ sudo chmod 755 /var/www/vhosts/example.com/logs/
修改后重启 PHP 服务:sudo plesk bin php_handler --reread。
? 验证是否生效:
在网站根目录放置测试脚本 test-error.php:
<?php error_reporting(E_ALL);
log_errors = On;
trigger_error("This is a test PHP warning.", E_USER_WARNING);
// 或强制致命错误(谨慎使用):
// require_once '/nonexistent.php';
?>
访问该脚本后,执行:
tail -f /var/www/vhosts/example.com/logs/php_error.log
应立即看到对应日志条目。
? 总结:Plesk Linux 环境下 PHP 错误日志路径固定、可预测,但依赖显式配置与正确权限。切勿沿用 Windows 路径思维;优先通过 Plesk UI 设置 error_log,辅以命令行验证,即可实现稳定、可追溯的错误监控。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











