转载自http://731434.blog.51cto.com/721434/1351637
yanlei509 的BLOG
Apache服务的主要目录和配置文件详解
一、Apache 主要配置文件注释
/application/apache/conf/httpd.conf # apache主要的配置文件
由于前文的编译安装我制定的安装目录为/application,所以我的配置文件在/application/apache/conf/httpd.conf,如果是rpm和yum安装的话,你的目录默认在/etc/httpd.conf
[root@es conf]# egrep -v "^.*#|^$" httpd.conf |nl # 去掉注释和空格行
1 ServerRoot "/application/apache2.2.22" # apache根目录,应只能root访问
2 Listen 80 # apache服务默认的监听端口80 如果需要同时监听多个端口可以在后面加行:listen 81
3 <IfModule !mpm_netware_module>
4 <IfModule !mpm_winnt_module>
5 User daemon # apache的用户,默认为daemon
6 Group daemon # apache的用户,默认为daemon
7 </IfModule>
8 </IfModule>
9 ServerAdmin you@example.com # 系统管理员邮箱,如果出现问题,会在首页显示
10 DocumentRoot "/application/apache2.2.22/htdocs" # apache的默认web站点目录路径,结尾不要添加斜线
11 <Directory /> # 11 - 16 行为对根目录的限制
12 Options FollowSymLinks # followsymlinks表示允许使用符号链接,默认为禁用
13 AllowOverride None # 表示禁止用户对目录配置文件(.htaccess进行修改)重载,普通站点不建议开启
14 Order deny,allow # 以deny方式优先处理,没有明确说明拒绝的话都通过,即允许未被明确拒绝的访问(从后往前)。
15 Deny from all # 明确指出拒绝所有访问
16 </Directory>
17 <Directory "/application/apache2.2.22/htdocs"> # 17 - 22 行为默认apache默认站点目录的限制配置(如果配置的站点不存在,出现403错误)
18 Options Indexes FollowSymLinks # FollowSymLinks 禁止使用符号链接 Indexes 表示允许用户浏览目录
Options -Indexes FollowSymLinks 或者 Options FollowSymLinks表示取消目录浏览的功能
19 AllowOverride None # 表示禁止用户对目录配置文件(.htaccess进行修改)重载,不建议开启
20 Order allow,deny # 以allow优先处理,没有明确说明允许的话都拒绝,拒绝未被明确允许
21 Allow from all # 允许所有的访问
22 </Directory>
23 <IfModule dir_module>
24 DirectoryIndex index.html # 配置默认的apache首页文件,如果虚拟机中没有配置,应用这里的配置,多个用空格隔开
25 </IfModule>
26 <FilesMatch "^\.ht"> # 防止.htaccess和.htpasswd等重要隐藏文件被web用户查看
27 Order allow,deny
28 Deny from all
29 Satisfy All
30 </FilesMatch>
31 ErrorLog "logs/error_log" # 错误的日志路径logs为apache服务安装目录的相对路径
32 LogLevel warn
33 <IfModule log_config_module>
34 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined # 访问日志格式
35 LogFormat "%h %l %u %t \"%r\" %>s %b" common # 访问普通日志格式
36 <IfModule logio_module>
37 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
38 </IfModule>
39 CustomLog "logs/access_log" common #默认站点访问日志配置
40 </IfModule>
41 <IfModule alias_module> # 41 - 51 CGI的配置,没有特殊需求可以注释和删除,目前基本已经淘汰
42 ScriptAlias /cgi-bin/ "/application/apache2.2.22/cgi-bin/"
43 </IfModule>
44 <IfModule cgid_module>
45 </IfModule>
46 <Directory "/application/apache2.2.22/cgi-bin">
47 AllowOverride None
48 Options None
49 Order allow,deny
50 Allow from all
51 </Directory>
52 DefaultType text/plain # DefaultType定义不能确定mime类型时服务器提供的默认MIME类型,如果服务主要包含text或html文档,“text/plain”是一个最好的选择
53 <IfModule mime_module>
54 TypesConfig conf/mime.types
55 AddType application/x-compress .Z # addencoding允许你在信息传送中使用maxaic/X 2.1+解压缩信息(不能支持所有的浏览器)
56 AddType application/x-gzip .gz .tgz
57 </IfModule>
58 <IfModule ssl_module>
59 SSLRandomSeed startup builtin
60 SSLRandomSeed connect builtin
61 </IfModule>
二、Apache扩展的配置文件
/application/apache/conf/extra # apache扩展的配置文件
[root@es extra]# ll
total 56
-rw-r--r-- 1 root root 2859 Jan 10 01:49 httpd-autoindex.conf
-rw-r--r-- 1 root root 1753 Jan 10 01:49 httpd-dav.conf
-rw-r--r-- 1 root root 2344 Jan 10 01:49 httpd-default.conf
-rw-r--r-- 1 root root 1103 Jan 10 01:49 httpd-info.conf
-rw-r--r-- 1 root root 5078 Jan 10 01:49 httpd-languages.conf
-rw-r--r-- 1 root root 932 Jan 10 01:49 httpd-manual.conf
-rw-r--r-- 1 root root 3789 Jan 10 01:49 httpd-mpm.conf
-rw-r--r-- 1 root root 2207 Jan 10 01:49 httpd-multilang-errordoc.conf
-rw-r--r-- 1 root root 11185 Jan 10 01:49 httpd-ssl.conf
-rw-r--r-- 1 root root 817 Jan 10 01:49 httpd-userdir.conf
-rw-r--r-- 1 root root 1507 Jan 10 01:49 httpd-vhosts.conf # 虚拟主机配置文件
三、httpd-vhosts.conf虚拟主机配置文件注释
[root@es extra]# egrep -v "^.*#|^$" httpd-vhosts.conf |nl
1 NameVirtualHost *:80 # 基于名称的虚拟主机配置( *:80表示监听本机所有ip)
2 <VirtualHost *:80> # 定义一个虚拟主机
3 ServerAdmin webmaster@dummy-host.example.com # 配置管理员邮箱
4 DocumentRoot "/application/apache2.2.22/docs/dummy-host.example.com" # 程序的站点目录
5 ServerName dummy-host.example.com # 域名服务,需要apache mode_alias模块支持
6 ServerAlias www.dummy-host.example.com # 虚拟主机别名
7 ErrorLog "logs/dummy-host.example.com-error_log"# 错误的日志路径
8 CustomLog "logs/dummy-host.example.com-access_log" common #访问日志配置(生产环境我们用combined格式代替common格式)
9 </VirtualHost>
10 <VirtualHost *:80>
11 ServerAdmin webmaster@dummy-host2.example.com
12 DocumentRoot "/application/apache2.2.22/docs/dummy-host2.example.com"
13 ServerName dummy-host2.example.com
14 ErrorLog "logs/dummy-host2.example.com-error_log"
15 CustomLog "logs/dummy-host2.example.com-access_log" common
16 </VirtualHost>
四、Apache服务存放站点的目录
/application/apache/htdocs # 默认存放网页的路径,输入IP 到此目录 能够见到it's wroks! 就是此目录
[root@es htdocs]# less index.html
<html><body><h1>It works!</h1></body></html>
五、Apache服务目录结构说明
[root@es htdocs]# ls /application/apache/
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
bin启动文件目录说明
|-- bin # apache服务的命令目录
| |-- ab # http服务性能测试工具
| |-- apachectl # apache启动命令
| |-- apr-1-config
| |-- apu-1-config
| |-- apxs # http服务编译和安装扩展模块使用工具,在DSO方式模块编译时用到
| |-- checkgid
| |-- dbmmanage
| |-- envvars
| |-- envvars-std
| |-- htcacheclean # 清理磁盘缓冲区的控制命令
| |-- htdbm
| |-- htdigest
| |-- htpasswd # 建立和更新基本认证文件
| |-- httpd # httpd为apache的控制命令程序
| |-- httxt2dbm
| |-- logresolve
| -- rotatelogs # apache自带的日子轮询命令(cronolog生产环境使用比较多)。
conf配置文件目录
[root@es htdocs]# ls /application/apache/conf/
extra httpd.conf magic mime.types original
/application/apache/conf/ # apache配置所有的配置文件目录
|-- extra # 额外的apache配置文件目录 如:httpd-vhost.conf
| |-- httpd-autoindex.conf
| |-- httpd-dav.conf
| |-- httpd-default.conf
| |-- httpd-info.conf
| |-- httpd-languages.conf
| |-- httpd-manual.conf
| |-- httpd-mpm.conf
| |-- httpd-multilang-errordoc.conf
| |-- httpd-ssl.conf
| |-- httpd-userdir.conf
| |-- httpd-vhosts.conf
|-- httpd.conf # apache主配置文件
|-- magic
|-- mime.types
|-- original
| |-- extra
| | |-- httpd-autoindex.conf
| | |-- httpd-dav.conf # dav支持配置
| | |-- httpd-default.conf # 这个文件里配置的是apache的相关服务参数:超时时间、保持链接
| | |-- httpd-info.conf
| | |-- httpd-languages.conf # 语言支持
| | |-- httpd-manual.conf
| | |-- httpd-mpm.conf # 服务器池管理,也是优化apache的一个配置文件(apache的模式以及配置链接数,常用模式为worker模式和profork模式,默认porfork)
| | |-- httpd-multilang-errordoc.conf
| | |-- httpd-ssl.conf # 提供apache ssl支持配置文件
| | |-- httpd-userdir.conf
| | |-- httpd-vhosts.conf # 虚拟机的配置文件
| |-- httpd.conf
站点存放目录
[root@es apache]# ls -l htdocs/ # 默认的首页文件都放在此目录当中。
total 4
-rw-r--r-- 1 root root 44 Nov 21 2004 index.html
日志存放目录
[root@es apache]# tree logs
logs # apache服务默认的日志路径,包括错误日志和访问日志
|-- access_log # apache服务访问日志 tail -f命令可以查看网页用户访问的信息
|-- cgisock.16406
|-- error_log # apache服务的错误日志。如:apache服务启动故障
|-- httpd.pid # httpd的pid文件,http进程启动后,会把所有进程的id号写到此文件
模块目录
[root@es apache]# ls -l manual/ # apache的模块目录 如php mencache
total 2984
-rw-r--r-- 1 root root 543 May 6 2008 bind.html
-rw-r--r-- 1 root root 11422 Jan 3 2012 bind.html.de