欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

在Linux系统上查看Apache服务器的错误日志

程序员文章站 2022-06-11 23:46:00
错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 http 服务器。根...

错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 http 服务器。根据你 web 服务器配置的不同,其错误/访问日志可能放在你系统中不同位置。

本文可以帮助你找到linux上的apache错误日志。
debian,ubuntu或linux mint上的apache错误日志位置
默认的错误日志

在基于debian的linux上,系统范围的apache错误日志默认位置是/var/log/apache2/error.log。默认位置可以通过编辑apache的配置文件进行修改。
自定义的错误日志

要找到自定义的错误日志位置,请用文本编辑器打开 /etc/apache2/apache2.conf,然后查找以 errorlog 开头的行,该行指定了自定义的 apache 错误日志文件的位置。例如,在未经修改的 apache 配置文件中可以找到以下行:

  errorlog ${apache_log_dir}/error.log

在本例中,该位置使用 apachelogdir 环境变量进行配置,该变量在 /etc/apache2/envvars 中已被定义。

  export apache_log_dir=/var/log/apache2$suffix

在实际情况中, errorlog 可能会指向你 linux 系统中任意路径。
使用虚拟主机自定义的错误日志

如果在 apache web 服务器中使用了虚拟主机, errorlog 指令可能会在虚拟主机容器内指定,在这种情况下,上面所说的系统范围的错误日志位置将被忽略。

启用了虚拟主机后,各个虚拟主机可以定义其自身的自定义错误日志位置。要找出某个特定虚拟主机的错误日志位置,你可以打开 /etc/apache2/sites-enabled/.conf,然后查找 errorlog 指令,该指令会显示站点指定的错误日志文件。
centos,fedora或rhel上的apache错误日志位置
默认的错误日志

在基于 red hat 的linux中,系统范围的 apache 错误日志文件默认被放置在/var/log/httpd/error_log。该默认位置可以通过修改 apache 配置文件进行自定义。
自定义的错误日志

要找出 apache 错误日志的自定义位置,请用文本编辑器打开 /etc/httpd/conf/httpd.conf,然后查找 serverroot,该参数显示了 apache web 服务器目录树的顶层,日志文件和配置都位于该目录树中。例如:

  serverroot "/etc/httpd"

现在,查找 errorlog 开头的行,该行指出了 apache web 服务器将错误日志写到了哪里去。注意,指定的位置是 serverroot 值的相对位置。例如:

  errorlog "log/error_log"

结合上面的两个指令,可以获得完整的错误日志路径,默认情况下该路径就是 /etc/httpd/logs/errorlog。在全新安装的apache中,这是一个到 /var/log/httpd/errorlog 的符号链接。

在实际情况中, errorlog 可能指向你 linux 系统中的任意位置。
使用虚拟主机自定义的错误日志

如果你启用了虚拟主机,你可以通过检查 /etc/httpd/conf/httpd.conf(或其它任何定义了虚拟主机的文件)来找到各个虚拟主机的错误日志位置。在独立的虚拟主机部分查找 errorlog。如,在下面的虚拟主机部分,错误日志的位置是 /var/www/xmodulo.com/logs/error_log。

  <virtualhost *:80>
    serveradmin webmaster@xmodulo.com
    documentroot /var/www/xmodulo.com/public_html
    servername www.xmodulo.com
    serveralias xmodulo.com
    errorlog /var/www/xmodulo.com/logs/error_log
    customlog /var/www/xmodulo.com/logs/access_log
  <virtualhost>