跳到主要内容

如何访问 cPanel 错误日志进行故障排除

了解 cPanel 错误日志对于快速识别和解决网站问题至关重要。通过分析这些日志,您可以定位错误、优化性能并增强安全性,确保用户获得流畅的在线体验。
本文将介绍如何访问错误日志以及在查看时应关注的内容。如果您正在寻找如何管理错误页面的信息,请访问我们的错误页面相关文章。要启用 WordPress 的调试模式,请查看《如何启用 WP_Debug》一文。

  • 错误日志概述
  • 如何访问 cPanel 错误日志
  • 常见错误日志术语
  • 阅读错误日志
  • 相关文章
  • 总结

错误日志概述

cPanel 错误日志工具在调试脚本和查找您可能未注意到的缺失文件或断链时非常有用。如果您发现的错误消息与您的网站相关,但不确定其含义或如何解决问题,建议联系脚本开发者进行进一步排查。错误日志页面有两个不同的部分需要了解:

主错误日志

main error log for all websites on your server

此部分显示服务器主错误日志的最后几行。这些行按时间顺序显示,包括时间、访问者的 IP 地址和错误消息。由于这是共享服务器,您会看到服务器上所有账户的错误信息。如果您想定位来自您托管账户的错误消息,可能需要先刷新包含错误或问题的网页 URL,然后刷新错误日志页面。

PHP 错误日志

PHP 错误日志仅显示与您账户相关的 PHP 脚本错误。这些错误按目录分类,不会像主错误日志那样自动消失。显示的错误存储在每个目录中的 error_log 文件中。如果您想清除 PHP 错误日志,只需使用文件管理器或 FTP 删除各目录中的 error_log 文件即可。
cpanel control panel file manager access file manager

如何访问 cPanel 错误日志

共享和转售商账户

  1. 登录您的 Bluehost 账户管理器。

  2. 在左侧菜单中点击 Websites(网站)

  3. 点击您想管理的网站旁的 MANAGE(管理) 按钮。
    Bluehost Account Manager - Website Manage button

  4. OVERVIEW(概览) 标签页下,点击下面的 CPANEL
    Multiple hosting plans - cPane Email link

  5. 您的 cPanel 将在新标签页打开。
    Bluehost Account Manager - Hosting Tab - Quick Links - cPanel button - cPanel Dashboard

  6. 向下滚动到 Metrics(统计) 部分。

  7. 点击 Errors(错误) 图标。
    cPanel > Metrics section > Errors

这里包含您的网站触发的最近 300 条 Apache 错误。

VPS 和独立服务器

在未安装 cPanel 的独立服务器或 VPS 上,大多数日志文件位于 /var/log/ 目录下。Apache 日志位于 /var/log/httpd/ 目录。

对于安装了 cPanel 的服务器来说,Apache 错误日志的实际位置是 /usr/local/apache/logs/error_log,其中 “error_log” 是一个纯文本文件。

常见错误日志术语

以下是您可能会看到的常见错误日志术语:

  • “文件不存在” — 文件位置错误或需要重新发布。所有文件和文件夹应上传到主域名的 [public_html] 目录内,或附加域的相应 [子域文件夹] 内。
  • 权限被拒绝: 项目(文件或用户)无访问权限。请参阅本指南:如何更改文件权限。

以下是您可能会看到的常见数据库(如 PHP)及其他类型错误日志术语:

  • 错误日志类型 - 警告错误:
    通常是文件路径不存在。建议检查脚本中的文件名或目录是否有拼写错误以及文件位置是否正确。
  • 错误日志类型 - 通知错误:
    通常是未定义变量。
    脚本在大多数情况下仍会继续执行。
  • 错误日志类型 - 解析错误或语法错误:
    解析或语法错误意味着代码中有拼写错误、错误符号、未闭合的引号、脚本语法拼写错误等。它可能会停止脚本执行并触发错误消息,或在 WordPress 网站上显示错误。
    错误日志会提供具体的错误原因、文件和代码行,帮助您准确定位并修复语法错误。
  • 错误日志类型 - 致命错误:
    致命错误可能由多种原因引起:当脚本或数据库尝试执行某个操作或函数时,所需的数据缺失或不存在于脚本或数据库代码指定的位置。换言之,脚本或数据库需要明确或更准确地定义数据来源。
    无法运行代码脚本或数据库,或程序执行过程中出现错误。
    致命错误可能导致应用程序崩溃。

阅读错误日志

如果您想快速定位或查找特定内容,请使用:

  • Windows 系统按 "CTRL" + "F"
  • Mac 系统按 "Command" + "F"

快速跳转并查找您想要的内容(完整或部分单词、数字、IP 地址、代码片段等),选项多样!
错误日志输出结果会有所不同,且不一定总是相同或相似。 每行都是一条日志(或记录),提供代码相关信息,供您审查并可能需要关注。每条错误日志包含一些基本信息,如:

  • 时间戳 — 日期和时间。
  • IP 地址 — 标识访问者或脚本在访问网站或执行数据库任务时的地理位置。
  • 文件、文件夹或数据库名称 — 错误日志会提供文件或文件夹名称,适用于所有文件或文件夹(例如 .html、.php 等)。
  • 文件/文件夹/数据库目录位置 — 包含文件名,如上所述。大多数情况下,错误日志会提供文件、文件夹或目录的具体位置。有时错误消息还会提示脚本尝试查找数据的位置,但未找到,从而帮助您对网站或数据库文件做出必要调整。
  • 错误消息和编号 — 日志提供具体的错误消息。您可以在本知识库中找到流行错误消息的相关信息(例如 404 错误或 500 错误)。强烈建议使用脚本、软件或数据库开发者提供的支持页面作为更详尽的资源,通常能详细解释错误含义及修复方法。

错误日志阅读示例

以下示例来自 PHP 错误日志,显示无法定位特定文件/文件夹/目录,包含具体文件、文件夹/目录及数据库中需检查的行号。


[03-Jul-2024 14:10:12 UTC] PHP Fatal error: require(): Failed opening required 'EXAMPLEFOLDER/blocks/a-coolexample-widget.php' (include_path='.:/opt/cpanel/ea-php74/root/usr/share/FOLDERNAME') in /home/exampledatabaseusername/public_html/wp-includes/blocks/index.php on line 11


以下示例为 cPanel 错误日志,提示访问无效 URL 时出现问题,可能是拼写错误、名称错误或使用了特殊字符。请检查文件名是否正确,建议查看 cPanel/logs/access_log 以确认谁尝试访问该 URL,并决定是否阻止其 IP 或更新访问权限。


[2024-01-31 00:42:24 -0700] warn [whostmgrd] (XID 000000) Documents are not permitted to contain null characters, or new lines. at filename.extension line 3292, <EXPLE> line 2.
cpanel::cpsrvd::parse_request_headers() called at filename.extension line 1845


以下示例为 cPanel 错误日志,提示“文件不存在”,即程序或脚本指定查找的位置未找到该文件。


[Fri Oct 07 12:34:00 2014] [error] [client 227.27.27.2] File does not exist: /home/etc/public_html/Foldername


以下示例为 Apache 错误日志,提示文件或文件夹未找到。


[Wed Jul 03 11:12:13.111111 2024] [:error] [pid 20202:tid 12345678987654321] [client 101.110.10.10:45678] File does not exist: /var/www/html/phpinfo.php


以下示例为 Apache/cPanel 错误日志,包含 ‘modsec’(安全)警报。如果脚本或脚本部分被阻止或无法正常执行,可能会出现类似请求。示例显示名为 'ExampleWebCrawlerbot' 的网络爬虫被视为潜在(安全)风险。


[Wed Jul 03 17:12:24.000000 2024] [security2:error] [pid 437700:tid 22533470926592] [client 01.01.127.001:0] [client 01.01.127.001] ModSecurity: Access denied with code 406 (phase 1). Pattern match "ExampleWebCrawlerbot/[0-9]" at REQUEST_HEADERS:User-Agent. [file "/opt/mod_security/EXAMPLE_rules.conf"] [line "587"] [id "999888"] [msg "Problematic Crawler"] [hostname "domainexample.com"] [uri "/magicalunicorn-conjunct-axis-symmetry/"] [unique_id "ZoXz2Xz08_Z1XzxZXZXzxzxZZZZz"]


作为预防措施,该请求被阻止(“访问被拒绝”),建议您调查相关代码或数据库。可能需要解除阻止以使其正常运行。错误日志提供了请求日期、IP 地址、具体文件、数据库甚至脚本名称等有用信息。像任何计算机、手机、电子邮件或服务器系统一样,系统会自动尝试保护您;有时您需要告知系统或服务器某项内容是安全的,以防止未来被阻止。

部分网络爬虫被嵌入代码中或安装用于网站的 SEO 或营销目的。

相关文章

寻找特定错误或错误日志? 我们为您准备了相关知识库支持资源指南,帮助您排查和处理错误日志:

  • 400 错误及 PHP 相关错误代码:403 错误、404 错误和 429 错误
  • 500 错误 — PHP 脚本
  • 500 错误代码 — 什么是 500 内部服务器错误及修复方法
  • VPS & 独立服务器的 500 错误代码
  • 502 错误代码 — 错误网关
  • 白屏死机(Error Blank White Pages)
  • 数据库连接错误页面
  • 致命错误:允许的内存大小
  • 错误索引
  • MySQL 数据库错误消息
  • PHP 显示错误标志 — 如何更改或排查 display_errors PHP 设置
  • WordPress 中 PHP 版本更新错误
  • Ruby on Rails (RoR) 排查 404 错误及常见 RoR 错误
  • 如何排查和修复 WordPress 核心文件

总结

理解这些日志有助于识别错误、优化性能并增强安全性,从而提升用户体验。访问日志需通过 cPanel 的错误日志部分,您可以查看主服务器错误和 PHP 特定错误。根据您的托管环境,日志位置可能不同,但它们为排查和维护网站功能及安全提供了宝贵信息。