/ 中存储网

Apache服务器配置模块的详细过程

2013-09-14 15:21:59 来源:IT技术网

自身已编译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