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