apache的配置文件一直看得我云里雾里的,今天好好把配置文件研究了一下,还是有点收获的。 看httpd.conf的内容,它主要分成3大部分:

Section 1:Global Environment Section 2:‘Main’ server configuration Section 3:Virtual Hosts

以后修改配置的时候一定要注意,不要写错了地方

#首先需要注意的地方: #路径的结尾不要添加斜线 #路径不要使用\ 换成/ #".“代表当前运行程序的目录,”..“代表上级目录,也可以写成绝对路径 #如果文件名不是以”/“开始的,预先考虑服务器根目录

#Apache主目录
ServerRoot "."
ServerRoot "D:/phpnow/Apache-22"

#默认监听80端口
Listen 80
Listen 12.34.56.78:80

#动态共享对象支持
#为了能够使用基于DSO(动态共享对象)的模块的功能,您必须把相应的`LoadModule'行放到
#这里以便在使用它们之前,它们所包含的指令能够被很好的使用。静态编译的模块(通过
#`httpd -l'列出的那些)并不需要被加载到这里来。

#确保httpd运行在合适的权限和用户组中
此选项只在非NetWare平台和win平台上起作用
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon
</IfModule>
</IfModule>

#‘主’服务器配置
# 本节中的指令用来设置‘主’服务器的相关配置,它针对那些被虚拟主机以外的请求作出响
# 应。它也包含一些虚拟主机默认的一些参数,一会您可以会在文件中定义它们。
# 所有的这些指令也可能会在虚拟主机的配置容器里出现,而虚拟主机里的定义将会覆盖这些
# 默认设置。即<VirtualHost>

#
#ServerName给出了服务器用来识别自己的名字和端口号。它往往被自动确定,但是我们建议
#您明确地指出它,防止启动过程中出现问题。
#如果您的主机没有一个已经在DNS上注册的域名,请在这里输入您的主机的IP地址
#
ServerName www.phpgao.com:80

#
#DocumentRoot:您的所有网站文件都置于该目录下。默认情况下,所有的请求都会指向该目录
#,但是动态链接和别名可以被用来指向其他位置。
#
DocumentRoot "C:/Apache2.2/htdocs"

#
# Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。 
# 
# 首先,我们创建一个默认的配置,最好比较严格。 
# 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。 
# 如下所示 
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

# 
# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。 
# - 所以,如果Apache没有象你所期待的那样工作的话, 
# 请检查你是否在下面明确的指定它可用。 
# PHPER@老高注释:下面的目录继承<Directory />中定义的权限
# 你但是你可以在单个的目录中修改某些配置以适应你的功能需求
# 你修改的东西将会覆盖默认的配置

<Directory "../htdocs">
# Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合: 
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
# 
# 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。 
# 
# 这个指令既复杂又重要,请参见 
#“http://httpd.apache.org/docs-2.0/mod/core.html#optioins”以取得更多的信息。 
#
# AllowOverride 控制着那些被放置在 .htaccess 文件里的指令。(Apache服务器
# 的.htaccess是一个非常强大的分布式配置文件,学会使用.htaccess,对虚拟主机用
# 来说,可以实现众多的功能。)
# 它可以是 "All", "None", 或者任意以下关键字的组合:
#   Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# 控制谁可以从该服务器获得资源.
#
Order allow,deny
Allow from all

</Directory>

# 
# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。 
# 
UserDir public_html 
# 为防止在UserDir指令上的漏洞,对root用户设置 
# 象“./”这样的UserDir是非常有用的。 
# 如果你使用Apache 1.3或以上版本,我们强烈建议你 
# 在你的服务器配置文件中包含下面的行 
UserDir disabled root 

#
# DirectoryIndex: 如果一个目录被请求,该指令用于设置Apache服务器将要服务的文件
# 解释如下,就是设置网站的默认被访问文件。
#
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

#
# 以下语句用来防止 .htaccess 和.htpasswd 文件被web客户端访问。
# 
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

#
# ErrorLog: 错误日志文件所在的位置。
# 如果你不在虚拟主义配置容器里指定ErrorLog 指令的话
# 关于虚拟主机的错误信息将会被放置在这里
#   如果你确实在虚拟主机配置容器里定义了错误文件,那么虚拟主机的错误日志文件将
# 在你配置的地方而不是这里。
#
ErrorLog logs/error.log

#
# LogLevel: 控制记录在错误日志文件里的信息的条数.
# 可能的值包括: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

<IfModule log_config_module>
#如果载入了log_config_module模块
# 下面的指令定义了一些日志格式昵称来配合
# CustomLog 指令使用 (如下).
#
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  LogFormat "%h %l %u %t \"%r\" %>s %b" common<IfModule logio_module>
# 你需要打开 mod_logio.c 的可用性以便使用 %I and %O
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
  </IfModule>
#
# 访问日志文件的位置和格式 (Common Logfile Format普遍的日志文件格式).
# 如果你没有在虚拟主机配置容器里定义任何相关内容,它们就在这里被记录。
#   反之, 如果你确实在每个虚拟主机里定义了access logfiles
# , 它们将被记录在你配置的地方而不是在这里。
# 
#
CustomLog logs/access.log common
#
# 如果你想要记录agent和referer信息,可以使用下面的指令 
# 
# CustomLog logs/referer_log referer 
# CustomLog logs/agent_log agent 
# 
#
# 如果您希望日志文件里包含访问,代理,引用信息
# 你可以如下定义这个指令: 
# 
# CustomLog logs/access_log combined 
# 
# ServerTokens 
# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”, 
# 这表示在回应头中将包含模块中的操作系统类型和编译信息。 
# 可以设为列各值中的一个: 
# Full | OS | Minor | Minimal | Major | Prod 
# Full传达的信息最多,而Prod最少。 
# 
ServerTokens Full 
</IfModule>

#
# "C:/Apache2.2/cgi-bin" 应该是你的 ScriptAliased
# CGI  所在的地方(如果你已经配置了的话)。
#
<Directory "C:/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

# 
# Apache 默认把所有的CGI(公共网关接口,一种HTTP服务器与你的或其它机器上的程序进行
#“交谈”的一种工具,其程序须运行在网络服务器上。 如PHP)脚本解析成命令行。
# 下面这个例子就是一个执行perl.exe的命令行,#!作为脚本的起始标志。

#!c:/program files/perl/perl

# 注意您不该缩进实际的命令行, 并且它必须成为文件的第一行
#   当然,运行中的CGI进程需要适当的 ScriptAlias或者Options ExecCGI指令集。
# 
#
# 然而, Windows上的Apache 或者允许UNIX的上述行为, 或者可以使用注册表扩展来匹配文件
# 。执行该类型文件的命令检索自注册表,这种方式和Windows资源管理器在用户双击文件
# 时使用的方式一样。
# 这些脚本行为可以通过Windows资源管理器视图菜单配置, 
# '文件夹选项', 并且审查‘文件类型’标签.  点击编辑按钮允许您修改行为
# , Apache 1.3 企图扮演‘打开’动作,失败的话它将尝试命令行
# 这个行为在Apache release 2.0中被改变了.
#
# 任何机制都有它特定的安全弱点, 通过这种方式来运行一个工程您别指望站长会乐意
# 最好的方法是个有争议的问题。
#
# 为了使windows的特定行为工作 (因此使等效的UNIX行为失效
# , 注释以下指令:
#
#ScriptInterpreterSource registry
#
# 以上指令可以被放在个人目录块或者
# .htaccess 文件, 或通过注册表(Windows behavior)或通过 'script' 
# (Unix behavior) option, 这将会重写这个服务的默认选项.
#

#
# DefaultType: 服务器为文件指定的默认的MIME类型。如果你的服务器大多包含文本和
# HTML文件, "text/plain"是个合适的值。
# 如果你的文件是二进制文件,例如应用程序或者图片,你
# 应该使用"application/octet-stream" 来让浏览器试图显示二进制文件虽然他们看起来
# 是文本
#
DefaultType text/plain

<IfModule mime_module>
#
# TypesConfig 指出了这样一个文件:它包含了从文件扩展到MIME-类型的映射的列表
#
TypesConfig conf/mime.types

#
# AddType 允许你在TypesConfig指定的MIME配置文件里指定或者重写具体的文件类型。
#
#AddType application/x-gzip .tgz
#
# AddEncoding 允许某些浏览器即时解压。
# 注意:不是所有浏览器都支持这个功能。
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# 如果上面的AddEncoding 指令被注释掉了, 你可能应该定义
# 这些扩展来表明媒体类型:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

#
# AddHandler 允许你映射某些文件扩展来 "处理程序":
# 与文件类型无关的动作。 这些既可以建立在服务器,又可以通过动作指令添加。(
# 如下)
#
# 使用ScriptAliased指令集外部的 CGI 脚本
# (你同样需要添加 "ExecCGI" 给 "Options" 指令.)
#
#AddHandler cgi-script .cgi

# 类型映射 (谈判资源):
#AddHandler type-map var

#
# 过滤器可以让您先处理内容,再把他们发送到客户端.
#
# 为了解析作为服务器端嵌入(SSI(Server Side Include),通常称为服务器端嵌入,
# 是一种类似于ASP的基于服务器的网页制作技术。)的 .shtml 文件:
# (您同样需要添加"Includes" 到 "Options" 指令。)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>

#
# 可定制的错误通过3种方式响应:
# 1) plain text(文本解释) 2) local redirects (本地重定向)3) external redirects
# (外部重定向)
#
# 一些例子:
#ErrorDocument 500 "The server made a boo boo."
ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://bincheng.swhss.cn/subscription_info.html
#

# 补充配置
#
# 位于 conf/extra/ directory 的补充配置文件可以被加入进来以便添加额外的功能
# 或者修改服务器默认的配置,或者你必要时可以简单地复制它们的内容到这里。

# Server-pool management (MPM specific)  服务池管理
#Include conf/extra/httpd-mpm.conf

# Multi-language error messages  多语言错误信息
#Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings  (花式)目录列表
#Include conf/extra/httpd-autoindex.conf

# Language settings  语言设置
#Include conf/extra/httpd-languages.conf

# User home directories  用户主目录
#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration  请求和配置的实时信息
#Include conf/extra/httpd-info.conf

# Virtual hosts  虚拟主机
#Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual  本地访问Apache HTTP服务器手册
#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV) 一种基于 HTTP 1.1协议的通信协议.它

# 扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使用
# 程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可支
# 持文件的版本控制。 
#Include conf/extra/httpd-dav.conf

# Various default settings  各种默认设置
#Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections  安全连接
#Include conf/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
#       starting without SSL on platforms with no /dev/random equivalent
#       but a statically compiled-in mod_ssl.
#注意:以下信息用于支持等效的无SSL但是有静态编译的mod_ssl的等效的平台启动。
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

#php安装程序编辑——删除即可卸载
LoadModule php5_module "../php-5.4/php5apache2_2.dll"
<IfModule mod_php5.c>
  PHPINIDir "../php-5.4/"
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
</IfModule>
# End PHP Configure of PHPnow