自身已编译webdav LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_fs_dav.so
在Apache服务器上运行CGI(P121)
在Apache服务器上运行PHP
在Apache服务器上运行JSP
Apache服务器的实时监控 添加mod_info模块
vi /etc/httpd/httpd.conf
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from 192.168.1.2 # 拒绝所有只允许192.168.1.2的主机访问
<Location >
http://ip/server-info 添加mod_status模块
vi /etc/httpd/httpd.conf
<Location /server-status>
SetHandler server-status
Order deny,allow
allow from 192.168.1.2
</Location>
Apache日志分析
添加mod_log_config模块
apache标准中规定4类日志:错误日志 访问日志 传输日志 Cookies日志
其中:传输日志和cookies日志已经被认为是过时的 ErrorLog httpd_error_logfile #配置错误日志
LogLevel httpd_error_level #配置错误日志
LogFormat 记录格式说明串格式昵称 #配置访问日志
CustomLog 访问日志文件名格式昵称 #配置访问日志
web日志轮循
三种方式:logrotate rotatelogs cronolog (系统 apache apache的FAQ) 使用logrotate实现日志循环
vi /etc/cron.daily/logrotate
#!/bin/sh/
$ usr/sbin/logrotate /etc/logrotate.conf
cat /etc/logrotate.conf
# see "man logrotate" for details
weekly # rotate log files weekly
rotate 4 # keep 4 weeks worth of backlogs
create # create new (empty) log files after rotating old ones
#compress # uncomment this if you want your log files compressed
include /etc/logrotate.d # RPM packages drop log rotation information into this directory
/var/log/wtmp { # no packages own wtmp -- we'll rotate them here
monthly
minsize 1M
create 0664 root utmp
rotate 1 # system-specific logs may be also be configured here. 可以发现需要滚动的日志配置都保存在/etc/logrotate.d目录下: 所以只需要创建一个名为“apache”的配置文件来指示logrotate如何滚动web服务器的日志文件即可
其它两种方式:p130
使用phpMyVisites分析Apache日志 P131 为根目录医用一个Directory容器
<Directory />
AllowOverride None
Options FollowSymLinks
</Directory>
将FolowSymLinks约束为一个用户的目录
<Directory />
Options FollowSymLinks
</Directory>
<Directory /home/*/public_html>
Options CFollowSymLinks
</Directory>
检查配置文件/etc/httpd/httpd.conf的错误:
<Location /server-status> 少写了一个“>”
用命令apachetcl configtest
Syntax error on line 918 of /etc/httpd/confi/httpd.conf
<Location>directive missing closing ‘>’
使用错误日志(错误日志是最重要的日志文件文件名和位置取决于ErrorLog指令)
Apache默认的错误日志配置如下:
ErrorLog logs/error_log
LogLevel warn
错误日志内容格式:time error_level error_content
[Wed Oct 11 14:32:53 2007] [error] [client 127.0.0.1] client denied by server configuration:/export/home/live/ap/htdocs/test 1 emerg 出现紧急情况使得该系统不可用(系统当机)
2 alert 需要立即引起注意的情况
3 crit 危险情况的警告
4 error 除了emerg、alert、ecit的其它错误
5 warn 警告信息
6 notice 需要引起注意的情况
7 info 值得报告的一般消息
8 debug 有运行debug模式的程序所产生的消息 301 告知用户请求的URL已经永久的移动到新的URL(用户可以记住新的URL)
302 告知用户请求的URL临时的移动到新的URL(用户不必记住新的URL)
303 告知用户页面已经被替换,用户应该记住新的URL
401 授权失败,即密码错误
403 Access denied,存取错误,即不可读取该文件
404 File not found,找不到文件
410 告知用户请求的页面已经不再存在,使用此代码时不应该使用从定性的URL参数
500 服务器内部错误,可能是WEB服务器背身存在问题,也可能编写的程序出错。 “Invalid argument: core_output_filter:writing date to the network”
“Premature end of script headers”
“Permission denied”
“POST Method Not Allowed”
“Internal Server Error” 检查Apache服务器模块问题
httpd CM
解决Apache服务器故障的步骤
1 检查错误日志 /usr/local/apache2/logs/error_log
2 再次检查语法
Apache配置文件是httpd.conf长度80-990行 几乎%99的Apache故障是语法错误引起的
可以手工检查/etc/httpd/conf/httpd.conf
3 查看Apache的FAQ
4 查看Apache bug 数据库
5 在某个用户论坛中提问
5 提交问题报告到bug数据库
7 获取商业支持
http://www.apache.org/info/support.cgi