Linux上Apache错误日志存放目录及自定义

我要解决 Linux 系统上的 Apache Web 服务器的错误,Apache的错误日志文件找不到,请问是放在的哪个目录呢?

Apache日志文件为系统管理员提供了有用的信息,比如,为 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>

windows系统下apache日志设置教程

注:Apache安装目录改成你自己的

apache默认日志在安装目录下的logs目录中,例如:D:\Apache Software Foundation\Apache2.2\logs

有时候需要设置到其他目录,其实很多时候都应该设置到其他目录。

配置文件是在安装目录下的conf目录下的httpd.conf文件,默认配置:

ErrorLog "logs/error.log"

LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog "logs/access.log" common

如果直接修改路径,则日期设置会出问题,在网上找到的方法如下:

ErrorLog "|bin/rotatelogs.exe E:/log/apache/error-%y-%m-%d.log 86400"LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog "|bin/rotatelogs.exe E:/log/apache/access.log" common

如果是有多个站点,需要针对多个站点设置,在VirtualHost里面设置

<VirtualHost *:80>

    ProxyPreserveHost On    ServerAdmin admin    ServerName www.yingbuluo.com

    ProxyPass / http://www.yingbuluo.com:8082/    ProxyPassReverse / http://www.yingbuluo.com:8082/    SetEnv force-proxy-request-1.0.1    SetEnv proxy-nokeepalive 1

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedCustomLog "|bin/rotatelogs.exe E:/log/apache/weba/access-%y-%m-%d.log 86400" combined

</VirtualHost>

时间: 2024-10-27 19:16:02

Linux上Apache错误日志存放目录及自定义的相关文章

Linux有问必答:Linux上Apache错误日志的位置在哪里?

错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器.根据你 Web 服务器配置的不同,其错误/访问日志可能放在你系统中不同位置. 本文可以帮助你找到Linux上的Apache错误日志. Debian,Ubuntu或Linux Mint上的Apache错误日志位置 默认的错误日志 在基于Debian的Linux上,系统范围的Apache错误日志默认位置是/var/log/apach

在Linux上给用户赋予指定目录的读写权限

在上篇文章中我们向您展示了如何在 Linux 上创建一个共享目录.这次,我们会为您介绍如何将 Linux 上指定目录的读写权限赋予用户. 有两种方法可以实现这个目标:第一种是 使用 ACL (访问控制列表) ,第二种是创建用户组来管理文件权限,下面会一一介绍. 为了完成这个教程,我们将使用以下设置. 操作系统:CentOS 7 测试目录:/shares/project1/reports 测试用户:tecmint 文件系统类型:ext4 请确认所有的命令都是使用 root 用户执行的,或者使用 s

linux下迁移mysql数据库存放目录

方法一: 参照windows下的方法,把/var/lib/mysql移到需要的目录,再修改/etc/my.cnf文件,指定数据目录.这方面的教程网上很多,大家可以去搜索一下. 停掉Mysql服务 在my.ini的[mysqld]里有三个设置,路径改成移动之后的路径  代码如下 复制代码 basedir="D:/MySQL-5.0.15b/" datadir="D:/MySQL-5.0.15b/data" innodb_data_home_dir="D:/M

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

错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器.根据你 Web 服务器配置的不同,其错误/访问日志可能放在你系统中不同位置. 本文可以帮助你找到Linux上的Apache错误日志.Debian,Ubuntu或Linux Mint上的Apache错误日志位置 默认的错误日志 在基于Debian的Linux上,系统范围的Apache错误日志默认位置是/var/log/apache

SQL Server 错误日志收缩(ERRORLOG)

一.基础知识 默认情况下,错误日志位于 : C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG 和ERRORLOG.n 文件中.默认保留有7个 SQL Server 错误日志文件,分别是:ErrorLog,Errorlog.1-Errorlog.6 ,当前的错误日志(文件ErrorLog)没有扩展名.每当启动 SQL Server 实例时,将创建新的错误日志ErrorLog,并将之前的ErrorLog更名为ErrorL

CENTOS下PHP不能将其错误日志单独输出到一个文件的问题解决

又是迁移服务器过程中发现的. /ETC/PHP.INI的文件里明明有以下两个选项 log_errors = On error_log = /var/log/XXX/php_error.log 但在测试PHP错误日志输出时,还是会和APACHE的错误日志输出合并在一起. PHP组的同事调了很久没成功. 我只好出马了. 大约看来看周围的配置,一切OK的. 按网上说的php_error.log权限设置,也OK的. 看来,唯一的和旧服务器的差别,就体现在存放文件的目录的读写权限啦. 果然,将新服务器指定

SQL Server数据库状态监控 - 错误日志

无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志 Windows事件日志中,应用程序里的SQL Server和

2. SQL Server数据库状态监控 - 错误日志

原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志

log4j 是否可以通过条件判断 在程序运行中动态选择日志存储目录

问题描述 比如我有两个用户A和B,我需要记录这两个用户的操作信息:add和del.我希望把A的日志存放到logs/A/**目录下,比如logs/A/add/add.loglogs/A/add/del.log我希望把B的日志存放到logs/B/**目录下,比如logs/B/add/add.loglogs/B/add/del.log当程序在记录日志时,知道用户是谁.如何在记录日志时,让程序根据用户来选择日志存放目录?log4j支持这样的功能吗,能否给出简明的log4j配置.在此谢谢各位~ 解决方案