DirectAdmin 错误日志

当您的网站抛出错误或行为异常时,首先要查看的是错误日志。日志是服务器记录的一切出错的证据。DirectAdmin 虚拟主机提供多种类型的日志 — Apache 错误日志、访问日志和 PHP 错误日志 — 每个都提供不同的诊断信息。

DirectAdmin 中可用的日志类型

如何在 DirectAdmin 中查看错误日志

方法 1:通过 DirectAdmin 面板

  1. 登录到 DirectAdmin
  2. 转到 高级功能 → 网站摘要 / 统计 / 日志
  3. 选择您想查看日志的域
  4. 点击 错误日志 或 访问日志
  5. DirectAdmin 显示所选日志的最后 20–50 行

方法 2:通过文件管理器

日志文件存储在这些位置(可能因虚拟主机配置而异):

~/logs/yourdomain.com.error.log
~/logs/yourdomain.com.bytes_log
~/logs/yourdomain.com.log   (访问日志)
~/logs/php_errorlog

在 DirectAdmin 中打开文件管理器 → 导航到 logs/ → 右键单击文件以查看其内容。

方法 3:通过 SSH(如有权限)

tail -n 100 ~/logs/yourdomain.com.error.log
tail -f ~/logs/yourdomain.com.error.log   # 实时流式输出

tail -f 命令可实时流式输出日志内容——非常适合在问题发生时进行即时调试。

读取 Apache 错误日志

Apache 错误日志条目遵循以下格式:

[Thu May 16 10:23:45.123456 2026] [core:error] [pid 12345] [client 1.2.3.4:54321] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error.

常见错误及修复方法

1. 500 内部服务器错误

[error] [client x.x.x.x] SoftException in Application.cpp:360: Script has to be an executable and writable only by its owner.

原因:文件权限设置不正确——PHP 文件应设为 644,而非 777。

修复:文件管理器 → 右键单击文件 → 更改权限 → 设置为 644。

2. 权限被拒绝(Permission Denied)

[error] [client x.x.x.x] (13)Permission denied: /home/user/public_html/.htaccess pcfg_openfile: unable to check htaccess file

原因:.htaccess 或父目录的权限设置有误。

修复:目录权限应为 755,文件权限应为 644。

3. 文件未找到(404)

[error] [client x.x.x.x] File does not exist: /home/user/public_html/wp-login.php

原因:文件缺失、URL 拼写错误,或机器人在扫描 WordPress 入口文件。

修复:若该文件本应存在,请将其还原。若是机器人流量,可考虑通过 .htaccess 进行速率限制或封锁相关 IP。

4. .htaccess 重定向循环

[error] Request exceeded the limit of 10 internal redirects

原因:.htaccess 中的某条 RewriteRule 将请求重定向至与同一规则匹配的 URL,形成无限循环。

修复:添加 RewriteCond 条件守卫,防止目标 URL 再次匹配同一规则。

日志级别及其含义

Apache 根据 RFC 5424 将日志条目分为八个严重级别。了解这些级别有助于您快速筛选出真正需要关注的内容,而无需逐行阅读所有日志:

级别 含义 所需操作
emerg 紧急——服务器完全无法运行 立即修复
alert 需要立即采取行动 立即修复
crit 严重——特定功能出现故障 尽快审查
error 请求失败——500、403、权限错误 尽快处理
warn 警告——运行中但存在异常 记录并监控
notice / info / debug 信息性提示 / 调试输出 仅在主动调试时启用

DirectAdmin 虚拟主机通常将 LogLevel 设置为 warn 或 error——这对于生产环境来说是合适的,可以避免日志文件被无关信息充满。如果需要更深入的诊断输出,可以临时将以下内容添加到 .htaccess:

LogLevel debug

调试完成后请立即删除该行。调试日志会为每个处理的请求生成条目,在流量较大的站点上可能会迅速占满磁盘配额。

在访问日志中检测机器人和攻击模式

访问日志是发现自动化流量、漏洞扫描和暴力破解尝试的第一道防线。需要注意的警告信号包括:

一旦识别出可疑 IP,可立即通过 .htaccess 进行封锁:

# 封锁单个 IP
Deny from 203.0.113.1

# 封锁整个子网
Deny from 203.0.113.0/24

对于自动化速率限制,mod_evasive(在您的主机支持的情况下)可根据请求阈值动态封锁 IP——在面对分布式攻击时比手动封锁更为有效。

小技巧:使用 awk 统计访问日志中各 IP 的请求数:
awk '{print $1}' ~/logs/yourdomain.com.log | sort | uniq -c | sort -rn | head -20
此命令会按请求次数排名输出前 20 个 IP 地址。

读取访问日志

访问日志条目采用混合日志格式(Combined Log Format):

1.2.3.4 - - [16/May/2026:10:23:45 +0700] "GET /index.html HTTP/1.1" 200 1234 "https://google.com" "Mozilla/5.0..."

访问日志的用途包括:

使用 grep 过滤日志(SSH)

如果有 SSH 访问权限,可使用 grep 快速筛选特定日志条目:

# 查找所有错误条目
grep "\[error\]" ~/logs/yourdomain.com.error.log

# 从访问日志中查找 500 错误
grep " 500 " ~/logs/yourdomain.com.log

# 查找来自特定 IP 的所有请求
grep "^1\.2\.3\.4" ~/logs/yourdomain.com.log

# 查找今天的 404 错误
grep "16/May/2026" ~/logs/yourdomain.com.log | grep " 404 "

超过 10 MB 的日志文件建议下载到本地后再打开,而不要在文件管理器中直接查看——大文件可能导致浏览器卡死。请使用 Notepad++ 或安装了日志查看器扩展的 VS Code 等文本编辑器进行查看。

启用 PHP 错误日志

PHP 错误日志与 Apache 错误日志是分开的。日志文件位置如下:

~/logs/php_errorlog
# 或 php.ini 中设置的路径:
error_log = /home/username/logs/php_errorlog

要启用 PHP 错误日志,请将以下内容添加到您的 .htaccess:

php_flag log_errors on
php_value error_log /home/username/logs/php_errorlog

日志轮转与日志文件大小管理

对于运行一段时间的主机账户,日志文件会迅速累积——尤其是访问日志,它记录每一个请求。DirectAdmin 在大多数套餐中会自动处理日志轮转,每天或每周对日志进行压缩和归档。归档日志会带有数字后缀:

~/logs/yourdomain.com.error.log       (当前)
~/logs/yourdomain.com.error.log.1.gz  (昨天)
~/logs/yourdomain.com.error.log.2.gz  (前天)

您可以使用 zcat 或 zgrep 直接读取压缩归档日志,无需解压:

# 读取压缩日志
zcat ~/logs/yourdomain.com.error.log.1.gz | tail -100

# 在压缩日志中搜索
zgrep "\[error\]" ~/logs/yourdomain.com.error.log.1.gz

若需释放磁盘空间,可通过文件管理器直接删除旧的 .gz 归档文件。请勿删除当前的 .log 文件(无数字后缀)——Apache 会持续向其写入内容,删除后将导致日志记录停止,直至服务器再次执行日志轮转。

如果日志文件的增长速度超过轮转能力,可考虑将 Apache 的 LogLevel 从 warn 降低为 error,或启用 mod_deflate 对响应进行压缩,从而减少字节日志的体积。

具有完整日志访问的虚拟主机

AsiaGB 虚拟主机通过 DirectAdmin 为每个账户提供错误日志和访问日志的访问权限 — SSD 存储起价 500 元泰铢/年,99% 正常运行时间 SLA。

查看虚拟主机计划

查看泰国虚拟主机全部套餐 →