Que*_*ark 13 logs webserver apache-httpd
我有一个网络服务器,我正在向其中添加站点。
a2ensite跑完后,我跑了service apache2 reload,得到了这个:
[失败] 重新加载 Web 服务器配置:apache2 失败!
是否有我可以查看更多详细信息的日志文件?
小智 15
如果找不到日志文件或日志文件为空,则可以运行 apache 配置测试,该测试将打印出配置文件的任何问题:
apachectl configtest
Run Code Online (Sandbox Code Playgroud)
您可以httpd使用-V开关查看配置文件的位置:
$ 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)
您还可以使用该命令lsof查看 Unix 进程正在访问哪些文件。我的版本httpd使用的是库存端口 80,因此在您的情况下将 80 更改为 8443!
$ netstat -tapn|grep ::80
tcp 0 0 :::80 :::* LISTEN 5338/httpd
Run Code Online (Sandbox Code Playgroud)
您现在可以运行lsof以找出日志文件写入的位置:
$ lsof -p 5338|grep log
httpd 5338 root mem REG 253,0 10440 3141 /usr/lib64/httpd/modules/mod_logio.so
httpd 5338 root mem REG 253,0 27200 3139 /usr/lib64/httpd/modules/mod_log_config.so
httpd 5338 root 2w REG 253,0 2014 395029 /var/log/httpd/error_log
httpd 5338 root 7w REG 253,0 4140 394789 /var/log/httpd/access_log
Run Code Online (Sandbox Code Playgroud)
您应该能够确定access_log配置文件的位置并查看它们以确定“目录”和“位置”指令。这些指定在告诉 Apache 提供哪些文件时要使用的本地目录。
然后我会查看access_log以确保那里有对应于对服务器的访问的条目。我的意思是,如果我浏览服务器,http://www.somedom.com/somefile我应该看到此访问记录在access_log文件中,如下所示:
192.168.1.110 - - [17/Jul/2013:14:39:50 -0400] "GET /somefile HTTP/1.1" 200 4303 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5
37.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)
您可以利用我们获得的上述知识并开始应用它,如下所示:
这些来自httpd -V告诉我们Apache的根:
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Run Code Online (Sandbox Code Playgroud)
所以我们知道主要的配置文件在这里:/etc/httpd/conf/httpd.conf. 因此,请查看该文件中的以下几行:
$ grep -E "DocumentRoot|Directory \"|^Include" /etc/httpd/conf/httpd.conf |grep -v "^#"
Include conf.d/*.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
<Directory "/var/www/icons">
<Directory "/var/www/cgi-bin">
<Directory "/var/www/error">
Run Code Online (Sandbox Code Playgroud)
所以我现在知道这些目录是我们在access_log. 在DocumentRoot和Directories我期待通过的文件,somefile。如果它不在这些位置中的任何一个位置,那么接下来我将关注输出Include中上面提到的目录.grep/etc/httpd/conf.d/*.conf
这些文件是 Apache 使用的附加配置,因此您还需要使用 重复这些步骤grep来查看这些文件。
| 归档时间: |
|
| 查看次数: |
38082 次 |
| 最近记录: |