# 基于 NCSA 服务的配置文件。 # #这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置指令被分为下面三个部分: #1. 控制整个Apache服务器行为的部分(即全局环境变量) #2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot #的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值 #为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log” # ##第一区:全局环境参数 # #这里设置的参数将影响整个Apache服务器的行为; #例如Apache能够处理的并发请求的数量等。 # #ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。 # #注意!如果你想要将它指定为NFS或其它网络上的位置, #请一定要去阅读与LockFile有关的文档(可能在 #
http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile
)。 #这将会使你自己也能解决很多问题。 # #路径的结尾不要添加斜线。 #
ServerRoot "/usr/loacl/apache2"
# #串行访问的锁文件必须保存在本地磁盘上 # <IfModule !mpm_winnt.c> <IfModule !mpm_neware.c> #LockFile logs/accept.lock </IfModule> </IfModule>
#ScoreBoardFile:用来保存内部服务进程信息的文件。 #如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中, #并且它不能被第三方软件所使用。 #如果指定了,要确保不能使用两个Apache使用同一个记分板文件, #这个记分板文件必须保存在本地磁盘上。
<IfModule !mpm_netware.c> <IfModule !perchild.c> #ScoreBoardFile logs/apache_runtime_status <IfModule> <IfModule>
# #PidFile:记录服务器启动进程号的文件。 # <IfModule !mpm_neware.c> PidFile logs/httpd.pid </IfModule>
# #Timeout:接收和发送前超时秒数 # Timeout 300
# #KeepAlive:是否允许稳固的连接(每个连接有多个请求), #设为"Off"则停用。 # KeepAlive On
# #MaxKeepAliveRequests:在稳固连接期间允许的最大请求数, #设为0表示无限制接入。 #我们推荐你将其设为一个较大的值,以便提高性能 MaxKeepAliveRequests 100
# #KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数 # KeepAliveTimeout 15
## ##Server-Pool大小设定(针对MPM的) ## # prefork MPM # StartServers:启动时服务器启动的进程数 # MinSpareServers:保有的备用进程的最小数目 # MaxSpareServers:保有的备用进程的最大数目 # MaxClients:服务器允许启动的最大进程数 # MaxRequestsPerChild:一个服务进程允许的最大请求数 <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestPerChild 0 </IfModule>
# worker MPM # StartServers:服务器启动时的服务进程数目 # MaxClients:允许同时连接的最大用户数目 # MinSpareThreads:保有的最小工作线程数目 # MaxSpareThreads:允许保有的最大工作线程数目 # ThreadsPerChild:每个服务进程中的工作线程常数 # MaxRequestsPerChild:服务进程中允许的最大请求数目
<IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
# perchild MPM # NumServers:服务进程数量 # StartThreads:每个服务进程中的起始线程数量 # MinSpareThreads:保有的最小线程数量 # MaxSpareThreads:保有的最大线程数量 # MaxThreadsPerChild:每个服务进程允许的最大线程数 # MaxRequestsPerChild:每个服务进程允许连接的最大数量 <IfModule perchild.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule>
# WinNT MPM # ThreadsPerChild:服务进程中工作线程常数 # MaxRequestsPerChild:服务进程允许的最大请求数 <IfModule mpm_winnt.c> ThreadsPerChild 250 MaxRequestsPerChild 0 </IfModule>
# BeOS MPM # StartThreads:服务器启动时启动的线程数 # MaxClients:可以启动的最大线程数(一个线程等于一个用户) # MaxRequestsPerThread:每个线程允许的最大请求数 <IfModule beos.c> StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 </IfModule>
# NetWare MPM # ThreadStachSize:为每个工作线程分配的堆栈尺寸 # StartThreads:服务器启动时启动的线程数 # MinSpareThreads:用于处理实发请求的空闲线程数 # MaxSpareThreads:空闲线程的最大数量 # MaxThreads:在同一时间活动的最大线程数 # MaxRequestPerChild:一个线程服务请求的最大数量, # 推荐将其设置为0,以实现无限制的接入 <IfModule mpm_netware.c> ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestPerChild 0 </IfModule>
# OS/2 MPM # StartServers:启动的服务进程数量 # MinSpareThreads:每个进程允许的最小空闲线程 # MaxSpareThreads:每个进程允许的最大空闲线程 # MaxRequestsPerChild:每个服务进程允许的最大连接数 <IfModule mpmt_os2.c> StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 </IfModule>
# # Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值 # 参见<VirtualHost>指令 # 使用如下命令使Apache只在指定的IP地址上监听, # 以防止它在IP地址0.0.0.0上监听 # # Listen 12.34.56.78:80 Listen 80
# # 动态共享支持(DSO) # # 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行, # 因此,在这里包含了这些指令,以便能在使用它之前激活。 # 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块) # # 示例: # LoadModule foo_module modules/mod_foo.so # # # ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态 # 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。 # 默认为off # # ExtendedStatus On
### 第二区:“主”服务配置 # # 这一区建立被 “主” 服务器用的指令值,以回应那些不被 <VirtualHost> # 定义处理的任何请求。 # 这些数值也提供默认值给后面定义的<VirtualHost>容器。 # 如果<VirtualHost>中有定义,那么这里定义的指令值将被 # <VirtualHost>中的定义所覆盖。 # <IfModule !mpm_winnt.c> <IfModule !mpm_neware.c> # # 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动 # 然后再将它切换为你想要使用的用户或组。 # # User/Group:运行httpd的用户和组 # 在SCO (ODT3)上使用“User nouser”和“Group nogroup” # 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。 # 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET), #节在这些系统上不要使用“Group #-1”。 # User nobody Group #-1 </IfModule> </IfModule>
# # ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。 # 作为一个出错文档,这个地址显示在server-generated页上, # 例如:
admin@your-domain.com
# ServerAdmin [email]kreny@sina.com[/email]
# # ServerName指定Apache用于识别自身的名字和端口号。 # 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错 # # 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。 # 参见UseCanonicalName指令 # # 如果你的主机没有注册DNS名,在这里键入它的IP地址 # 无论如何,你必须使用它的IP地址来提供服务, # 这里使用一种容易理解的方式重定向服务 ServerName
http://www.dalouis.com:80
# # UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 # 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。 # 当设置为“On”,Apache会使用ServerName指令的值。 # UseCanonicalName Off
# # DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。 # 但是可以使用符号链接和别名来指向到其他的位置。 # DocumentRoot "/home/redhat/public_html"
# # Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。 # # 首先,我们配置一个高限制的特征。
# 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。 # 如下所示
<Directory /> Order Deny,Allow Deny from all </Directory>
# # 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。 # - 所以,如果Apache没有象你所期待的那样工作的话, # 请检查你是否在下面明确的指定它可用。 #
# # 这将改变到你设置的DocumentRoot #
<Directory "/home/redhat/public_html">
# # Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。 # # 这个指令既复杂又重要,请参见 #
http://httpd.apache.org/docs-2.0/mod/core.html#optioins
#
Options FollowSymLinks
# # AllowOverride控制那些被放置在.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
# # 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例: # # <Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit Indexes # Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec # <Limit GET POST OPTIONS PROPFIND> # Order allow,deny # Allow from all # </Limit> # <LimitExcept GET POST OPTIONS PROPFIND> # Order deny,allow # Deny from all # </LimitExcept> # </Directory>
# # DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名 # # index.html.var文件(一个类型映象文件)用于提供一个文档处理列表, # 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。 #
DirectoryIndex index.php index.html index.html.var
# # AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。 # 参见AllowOverride指令。 #
AccessFileName .htaccess
# # 下面的行防止.htaccess和.htpasswd文件被Web客户查看。 #
<Files ~ "^.ht"> Order allow,deny Deny from all </Files>
# # Typeconfig:定义在哪里查询mime.types文件。 #
TypeConfig conf/mime.types
# # DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。 # 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择; # 如果大多是二进制文档,诸如软件或图像,你应使用 # “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。 #
DefaultType text/plain
# # mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints), # 这个MIMEMagicFile指令定义hints定义所在的文件。 #
<IfModule mod_mime_magic.c> MIMEMagicFile conf/magic </IfModule>
# # HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时 # 记录主机名,如<a href="
http://www.apache.org
;为off时记录IP地址,204.62.129.132。" target="_blank">www.apache.org;为off时记录IP地址,204.62.129.132。</a> # 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会 # 至少造成对 nameserver 进行一次查询。 #
HostnameLookups Off
# # EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。 # 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。 # 在一些系统上,关闭它会提升系统性能(与文件系统类型无关); # 具体情况请参阅<a href="
http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap
" target="_blank">http://httpd.apache.org/docs-2.0/mo...html#enablemmap</a> # # EnableMMAP off
# # EnableSendfile:控制是否使用sendfile kernel支持发送文件 # (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统 # (NFS)上,请你关闭它。 # 参见<a href="
http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
" target="_blank">http://httpd.apache.org/docs-2.0/mo...#enablesendfile</a> # # EnableSendfile off
# # ErrorLog:错误日志文件定位。 # 如果你没有在<VirtualHost>内定义ErrorLog指令,这个虚拟主机的错误信息 # 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所 # 定义的文件里,而不是这儿定义的文件。 #
ErrorLog logs/error_log
# # LogLevel:控制记录在错误日志文件中的日志信息数量。 # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 #
LogLevel warn
# # 下面的指令为CustomLog指令定义格式别名。 #
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
# 你需要安装了mod_logio.c模块才能使用%I和%O。 # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
# # 指定接入日志文件的定位和格式(一般日志格式)。 # 如果你没有在<VirtualHost>内定义这个指令,传输信息将记录在这里, # 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。 #
CustomLog logs/access_log common
# # 如果你想要记录agent和referer信息,可以使用下面的指令 # # CustomLog logs/referer_log referer # CustomLog logs/agent_log agent
# # 如果你想要使用一个文件记录access,agent和referer信息, # 你可以如下定义这个指令: # # CustomLog logs/access_log combined
# # ServerTokens # 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”, # 这表示在回应头中将包含模块中的操作系统类型和编译信息。 # 可以设为列各值中的一个: # Full | OS | Minor | Minimal | Major | Prod # Full传达的信息最多,而Prod最少。 #
ServerTokens Full
# # 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中 # (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误 # 或自定义的错误文档以外)。 # 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。 # 可以为如下值:On | Off | EMail #
ServerSignature On
# # Aliases:在这时添加你需要的别名,格式如下: # Alias 别名 真实名 # # 注意,如果你在别名的未尾包含了“/”,那么在URL中也需要包含“/”。 # 因此,“/icons”不是这个示例中的别名。 # 如果别名中以“/”结尾,那么真实名也必须以“/”结尾, # 如果别名中省略了结尾的“/”,那么真实名也必须省略。 # # 我们使用别名“/icons/”来表示FancyIndexed目录列表,如果你不使用、 # FancyIndexing,你可以注释掉它。 # # Alias /icons/ "/usr/local/apache2/icons/"
# <Directory "/usr/local/apache2/icons"> # Options Indexes MultiViews # AllowOverride None # Order allow,deny ## Allow from all # </Directory>
# # 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置, # 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话, # 你可以注释掉它。 #
Alias /manual "/usr/loacl/apache2/manual" <Directory "/usr/local/apache2/manual"> Options Indexes FollowSymLinks MultiViews IncludesNoExec AddOutputFilter Includes html Order allow,deny Allow from all </Directory>
# # ScriptAlias:指定包含服务脚本的目录。 # ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外。 # 尾部的“/”规则与Alias一样 #
ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/"
# 这里是添加php 4支持的指令
AddType application/x-httpd-php .php LoadModule php4_module modules/libphp4.so <IfModule mod_cgid.c> # # 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的 # 脚本接口路径。 # # Scriptsock logs/cgisock </IfModule>
# # 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录, # 如果你配置了的话。 #
<Directory "/usr/local/apache2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
# # Redirect允许你告诉客户端使用存在于服务器名字空间中的文档, # 而不是现在的,这帮助客户定位那些改变了位置的文档。 # 例如: # Redirect permanent /foo
http://www.example.com/bar
# # 控制server-generated目录列表显示的指令 #
# # IndexOptions:控制server-generated目录列表显示特征。 #
IndexOptions FancyIndexing VersionSort
# # AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示, # 只适用于FancyIndexed指令 #
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text # 基于 NCSA 服务的配置文件。 # #这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。 #参见<URL:<a href="http://httpd.ache.org/doc-2.0/" target="_blank">http://httpd.ache.org/doc-2.0/</a>>以取得关于这些指令的详细信息 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置指令被分为下面三个部分: #1. 控制整个Apache服务器行为的部分(即全局环境变量) #2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot #的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值 #为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log” # ##第一区:全局环境参数 # #这里设置的参数将影响整个Apache服务器的行为; #例如Apache能够处理的并发请求的数量等。 # #ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。 # #注意!如果你想要将它指定为NFS或其它网络上的位置, #请一定要去阅读与LockFile有关的文档(可能在 #http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile)。 #这将会使你自己也能解决很多问题。 # #路径的结尾不要添加斜线。 #
ServerRoot "/usr/loacl/apache2"
# #串行访问的锁文件必须保存在本地磁盘上 #
<IfModule !mpm_winnt.c> <IfModule !mpm_neware.c> #LockFile logs/accept.lock </IfModule> </IfModule>
#ScoreBoardFile:用来保存内部服务进程信息的文件。 #如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中, #并且它不能被第三方软件所使用。 #如果指定了,要确保不能使用两个Apache使用同一个记分板文件, #这个记分板文件必须保存在本地磁盘上。 #
<IfModule !mpm_netware.c> <IfModule !perchild.c> #ScoreBoardFile logs/apache_runtime_status <IfModule> <IfModule>
# #PidFile:记录服务器启动进程号的文件。 #
<IfModule !mpm_neware.c> PidFile logs/httpd.pid </IfModule>
# #Timeout:接收和发送前超时秒数 #
Timeout 300
# #KeepAlive:是否允许稳固的连接(每个连接有多个请求), #设为"Off"则停用。 #
KeepAlive On
# #MaxKeepAliveRequests:在稳固连接期间允许的最大请求数, #设为0表示无限制接入。 #我们推荐你将其设为一个较大的值,以便提高性能
MaxKeepAliveRequests 100
# #KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数 #
KeepAliveTimeout 15
## ##Server-Pool大小设定(针对MPM的) ##
# prefork MPM # StartServers:启动时服务器启动的进程数 # MinSpareServers:保有的备用进程的最小数目 # MaxSpareServers:保有的备用进程的最大数目 # MaxClients:服务器允许启动的最大进程数 # MaxRequestsPerChild:一个服务进程允许的最大请求数
<IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestPerChild 0 </IfModule>
# worker MPM # StartServers:服务器启动时的服务进程数目 # MaxClients:允许同时连接的最大用户数目 # MinSpareThreads:保有的最小工作线程数目 # MaxSpareThreads:允许保有的最大工作线程数目 # ThreadsPerChild:每个服务进程中的工作线程常数 # MaxRequestsPerChild:服务进程中允许的最大请求数目
<IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
# perchild MPM # NumServers:服务进程数量 # StartThreads:每个服务进程中的起始线程数量 # MinSpareThreads:保有的最小线程数量 # MaxSpareThreads:保有的最大线程数量 # MaxThreadsPerChild:每个服务进程允许的最大线程数 # MaxRequestsPerChild:每个服务进程允许连接的最大数量
<IfModule perchild.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule>
# WinNT MPM # ThreadsPerChild:服务进程中工作线程常数 # MaxRequestsPerChild:服务进程允许的最大请求数
<IfModule mpm_winnt.c> ThreadsPerChild 250 MaxRequestsPerChild 0 </IfModule>
# BeOS MPM # StartThreads:服务器启动时启动的线程数 # MaxClients:可以启动的最大线程数(一个线程等于一个用户) # MaxRequestsPerThread:每个线程允许的最大请求数
<IfModule beos.c> StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 </IfModule>
# NetWare MPM # ThreadStachSize:为每个工作线程分配的堆栈尺寸 # StartThreads:服务器启动时启动的线程数 # MinSpareThreads:用于处理实发请求的空闲线程数 # MaxSpareThreads:空闲线程的最大数量 # MaxThreads:在同一时间活动的最大线程数 # MaxRequestPerChild:一个线程服务请求的最大数量, # 推荐将其设置为0,以实现无限制的接入
<IfModule mpm_netware.c> ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestPerChild 0 </IfModule>
# OS/2 MPM # StartServers:启动的服务进程数量 # MinSpareThreads:每个进程允许的最小空闲线程 # MaxSpareThreads:每个进程允许的最大空闲线程 # MaxRequestsPerChild:每个服务进程允许的最大连接数 <IfModule mpmt_os2.c> StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 </IfModule>
# # Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值 # 参见<VirtualHost>指令 # 使用如下命令使Apache只在指定的IP地址上监听, # 以防止它在IP地址0.0.0.0上监听 # # Listen 12.34.56.78:80
Listen 80
# # 动态共享支持(DSO) # # 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行, # 因此,在这里包含了这些指令,以便能在使用它之前激活。 # 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块) # # 示例: # LoadModule foo_module modules/mod_foo.so #
# # ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态 # 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。 # 默认为off # # ExtendedStatus On
### 第二区:“主”服务配置 # # 这一区建立被 “主” 服务器用的指令值,以回应那些不被 <VirtualHost> # 定义处理的任何请求。 # 这些数值也提供默认值给后面定义的<VirtualHost>容器。 # 如果<VirtualHost>中有定义,那么这里定义的指令值将被 # <VirtualHost>中的定义所覆盖。 #
<IfModule !mpm_winnt.c> <IfModule !mpm_neware.c> # # 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动 # 然后再将它切换为你想要使用的用户或组。 # # User/Group:运行httpd的用户和组 # 在SCO (ODT3)上使用“User nouser”和“Group nogroup” # 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。 # 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET), #节在这些系统上不要使用“Group #-1”。 #
User nobody Group #-1 </IfModule> </IfModule>
# # ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。 # 作为一个出错文档,这个地址显示在server-generated页上, # 例如:
admin@your-domain.com
#
ServerAdmin [email]kreny@sina.com[/email]
# # ServerName指定Apache用于识别自身的名字和端口号。 # 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错 # # 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。 # 参见UseCanonicalName指令 # # 如果你的主机没有注册DNS名,在这里键入它的IP地址 # 无论如何,你必须使用它的IP地址来提供服务, # 这里使用一种容易理解的方式重定向服务
ServerName <a href="http://www.dalouis.com:80" target="_blank">www.dalouis.com:80</a>
# # UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 # 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。 # 当设置为“On”,Apache会使用ServerName指令的值。 #
UseCanonicalName Off
# # DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。 # 但是可以使用符号链接和别名来指向到其他的位置。 #
DocumentRoot "/home/redhat/public_html"
# # Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。 # # 首先,我们配置一个高限制的特征。
# 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。 # 如下所示
<Directory /> Order Deny,Allow Deny from all </Directory>
# # 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。 # - 所以,如果Apache没有象你所期待的那样工作的话, # 请检查你是否在下面明确的指定它可用。 #
# # 这将改变到你设置的DocumentRoot #
<Directory "/home/redhat/public_html"> # # Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。 # # 这个指令既复杂又重要,请参见 #http://httpd.apache.org/docs-2.0/mod/core.html#optioins # Options FollowSymLinks # # AllowOverride控制那些被放置在.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
# # 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例: # # <Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit Indexes # Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec # <Limit GET POST OPTIONS PROPFIND> # Order allow,deny # Allow from all # </Limit> # <LimitExcept GET POST OPTIONS PROPFIND> # Order deny,allow # Deny from all # </LimitExcept> # </Directory>
# # DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名 # # index.html.var文件(一个类型映象文件)用于提供一个文档处理列表, # 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。 #
DirectoryIndex index.php index.html index.html.var
# # AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。 # 参见AllowOverride指令。 #
AccessFileName .htaccess
# # 下面的行防止.htaccess和.htpasswd文件被Web客户查看。 #
<Files ~ "^.ht"> Order allow,deny Deny from all </Files>
# # Typeconfig:定义在哪里查询mime.types文件。 #
TypeConfig conf/mime.types
# # DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。 # 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择; # 如果大多是二进制文档,诸如软件或图像,你应使用 # “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。 #
DefaultType text/plain
# # mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints), # 这个MIMEMagicFile指令定义hints定义所在的文件。 #
<IfModule mod_mime_magic.c> MIMEMagicFile conf/magic </IfModule>
# # HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时 # 记录主机名,如
为off时记录IP地址,204.62.129.132。" www.apache.org;为off时记录IP地址,204.62.129.132。</a> # 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会 # 至少造成对 nameserver 进行一次查询。 #
HostnameLookups Off
# # EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。 # 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。 # 在一些系统上,关闭它会提升系统性能(与文件系统类型无关); # 具体情况请参阅<a href="
http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap
" target="_blank">http://httpd.apache.org/docs-2.0/mo...html#enablemmap</a> # # EnableMMAP off
# # EnableSendfile:控制是否使用sendfile kernel支持发送文件 # (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统 # (NFS)上,请你关闭它。 # 参见<a href="
http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
" target="_blank">http://httpd.apache.org/docs-2.0/mo...#enablesendfile</a> # # EnableSendfile off
# # ErrorLog:错误日志文件定位。 # 如果你没有在<VirtualHost>内定义ErrorLog指令,这个虚拟主机的错误信息 # 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所 # 定义的文件里,而不是这儿定义的文件。 #
ErrorLog logs/error_log
# # LogLevel:控制记录在错误日志文件中的日志信息数量。 # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 #
LogLevel warn
# # 下面的指令为CustomLog指令定义格式别名。 #
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
# 你需要安装了mod_logio.c模块才能使用%I和%O。 # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
# # 指定接入日志文件的定位和格式(一般日志格式)。 # 如果你没有在<VirtualHost>内定义这个指令,传输信息将记录在这里, # 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。 #
CustomLog logs/access_log common
# # 如果你想要记录agent和referer信息,可以使用下面的指令 # # CustomLog logs/referer_log referer # CustomLog logs/agent_log agent
# # 如果你想要使用一个文件记录access,agent和referer信息, # 你可以如下定义这个指令: # # CustomLog logs/access_log combined
# # ServerTokens # 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”, # 这表示在回应头中将包含模块中的操作系统类型和编译信息。 # 可以设为列各值中的一个: # Full | OS | Minor | Minimal | Major | Prod # Full传达的信息最多,而Prod最少。 #
ServerTokens Full
# # 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中 # (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误 # 或自定义的错误文档以外)。 # 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。 # 可以为如下值:On | Off | EMail #
ServerSignature On
# # Aliases:在这时添加你需要的别名,格式如下: # Alias 别名 真实名 # # 注意,如果你在别名的未尾包含了“/”,那么在URL中也需要包含“/”。 # 因此,“/icons”不是这个示例中的别名。 # 如果别名中以“/”结尾,那么真实名也必须以“/”结尾, # 如果别名中省略了结尾的“/”,那么真实名也必须省略。 # # 我们使用别名“/icons/”来表示FancyIndexed目录列表,如果你不使用、 # FancyIndexing,你可以注释掉它。 # # Alias /icons/ "/usr/local/apache2/icons/"
# <Directory "/usr/local/apache2/icons"> # Options Indexes MultiViews # AllowOverride None # Order allow,deny ## Allow from all # </Directory>
# # 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置, # 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话, # 你可以注释掉它。 #
Alias /manual "/usr/loacl/apache2/manual" <Directory "/usr/local/apache2/manual"> Options Indexes FollowSymLinks MultiViews IncludesNoExec AddOutputFilter Includes html Order allow,deny Allow from all </Directory>
# # ScriptAlias:指定包含服务脚本的目录。 # ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外。 # 尾部的“/”规则与Alias一样 #
ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/"
# 这里是添加php 4支持的指令
AddType application/x-httpd-php .php LoadModule php4_module modules/libphp4.so
<IfModule mod_cgid.c> # # 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的 # 脚本接口路径。 # # Scriptsock logs/cgisock </IfModule>
# # 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录, # 如果你配置了的话。 #
<Directory "/usr/local/apache2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
# # Redirect允许你告诉客户端使用存在于服务器名字空间中的文档, # 而不是现在的,这帮助客户定位那些改变了位置的文档。 # 例如: # Redirect permanent /foo <a href="
http://www.example.com/bar
" target="_blank">http://www.example.com/bar</a> # # 控制server-generated目录列表显示的指令 # # # IndexOptions:控制server-generated目录列表显示特征。 #
IndexOptions FancyIndexing VersionSort
# # AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示, # 只适用于FancyIndexed指令 #
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text
|