Tha*_*Guy 13 logs debian apache-httpd
我对托管了数十个站点的服务器具有 root 访问权限。我正在尝试调试其中一个站点。当我浏览网站时,它没有显示在/var/logs/apache2/access.log
或 上/var/logs/apache2/error.log
。(文件就在那里,其他站点也会登录这些文件。事实上,有数百个不同的日志文件)。
既没有locate httpd.log
也没有find . -iname httpd.log
执行/
任何结果。
该站点的apache配置是:
ServerName REDACTED.com.br
DocumentRoot /var/www/xyz/wiki
AssignUserId xyz_wiki xyz_wiki
<Directory /var/www/xyz/wiki/data>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/conf>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/bin>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/inc>
order allow,deny
deny from all
</Directory>
php_admin_value open_basedir /var/www/xyz/wiki/:/mnt/vdImagem/www/xyz/wiki/
Run Code Online (Sandbox Code Playgroud)
您可以从 Apache 的日志文件中查询他的信息,但通常最好从实际的可执行文件中查询这些信息。解析日志可能很棘手,如果您不太熟悉如何在盒子上完成特定设置,您可能会犯错误。
$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built: Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Run Code Online (Sandbox Code Playgroud)
您要查看的关键项目如下。
这会告诉您 Apache 将引用的所有文件从“根”目录开始:
-D HTTPD_ROOT="/etc/httpd"
Run Code Online (Sandbox Code Playgroud)配置文件被定义,从这里开始。请注意,此路径是相对于 #1 中提到的路径,因此它将是/etc/httpd/conf/httpd.conf
.
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Run Code Online (Sandbox Code Playgroud)错误日志在这里。
-D DEFAULT_ERRORLOG="logs/error_log"
Run Code Online (Sandbox Code Playgroud)
注意: 这个一开始可能有点混乱,但在 Red Hat 发行版上,这个目录中经常有一个链接,/etc/httpd
称为logs
.
$ ls -ld /etc/httpd/logs
lrwxrwxrwx. 1 root root 19 Jul 9 2012 /etc/httpd/logs -> ../../var/log/httpd
Run Code Online (Sandbox Code Playgroud)Apache 可能使用的其他日志文件将在配置文件中进一步定义/etc/httpd/conf/httpd.conf
。
小智 6
我无法从其他答案中得到任何命令来找到我的价值。我最终通过跑步找到了我需要的东西less /etc/apache2/envvars
在您的 apache 配置中查找 string ErrorLog
。
通常 Apache 进程本身就有一个。每个虚拟主机还可以定义自己的日志文件,因此也请检查这些文件。
如果 VirtualHost 没有定义自己的日志文件,那么它将使用全局配置中指定的日志文件。如果您认为已找到正确的日志文件,但没有看到所需的信息,请尝试增加LogLevel
.