Linux下MySQL configure参数

–prefix=/program/mysql 安装路径

–localstatedir=/var/lib/mysql 数据库文件存放路径

–with-comment=Source

–with-server-suffix=-Community

–with-mysqld-user=mysql

–without-debug

–with-big-tables

–with-charset=gbk utf8

–with-collation=gbk_chinese_ci utf8_unicode_ci

–with-extra-charsets=all

–with-pthread

–enable-static

–enable-thread-safe-client

–with-client-ldflags=-all-static

–with-mysqld-ldflags=-all-static

–enable-assembler

–without-innodb

–without-isam

–without-ndb-debug

–with-unix-socket-path=/home/mysql/tmp/mysql.sock

Linux下的Apache缓存系统

Apache 从2.0开始就已经可以使用缓存模块了,不过在2.0的时候还是实验性的,到了2.2已经完全可以放心的使用。Apache 的缓存实现主要依靠 mod_cache、mod_disk_cache、mod_file_cache 及 mod_mem_cache。只需在配置编译的时候加上参数:–enable-cache、 –enable-disk-cache、–enable-file-cache、 –enable-mem-cache 即可。
关于 Apache 的编译安装本文就不再说了,可以参考以前的文章。这里主要介绍一下如何配置使用 Apache 的缓存功能。
具体来说,Apache 的缓存方式有两种,一种是基于硬盘文件的缓存,由 mod_disk_cache 实现,另一种是使用内存缓存,由 mod_mem_cache 实现,不过它们都是依赖 mod_cache 模块的,mod_cache 模块提供了一些缓存配置的指令供它们使用,而 mod_file_cache 模块是搭配 mod_mem_cache 模块使用的,下面分别进行介绍。

1、基于硬盘文件的缓存
基于硬盘文件存储的缓存由 mod_disk_cache 模块实现,先看个简单的配置例子:

CacheDefaultExpire 86400

CacheEnable disk /
CacheRoot /tmp/apacheCache
CacheDirLevels 5
CacheDirLength 5
CacheMaxFileSize 1048576
CacheMinFileSize 10

把上面的配置加到 Apache 的 httpd.conf 文件中,如果缓存相关的模块都已经编译进了 Apache 的核心,则无需加载模块,直接就能使用上面的指令。指令的详细说明如下:
CacheDefaultExpire: 设定缓存过期的时间(秒),默认是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效
CacheEnable:启用缓存,第1个参数是缓存类弄,这里当然是 disk了,第2个参数是缓存路径,指的是 url 路径,这里是缓存所有的东西,直接写上“/”即可,如“/docs”则只缓存 /docs 下的所有文件
CacheRoot:缓存文件所在的目录,运行 Apache 的用户(如daemon 或 nobody)要能对其进行读写,如果不清楚的话可以直接设置成 777,请手动建立该目录并设置好访问权限
CacheDirLevels:缓存目录的深度,默认是3,这里设置为5
CacheDirLength:缓存目录名的字符长度,默认是4,这里设置为5
CacheMaxFileSize 和 CacheMaxFileSize:缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存,这里设置为 1M 和 10bytes
基于硬盘文件存储的文件基本上就这些内容,设置好后重启 Apache 应该就能使用了。一切正常的话,可以在缓存目录下看到 Apache 自动建立的一些目录和缓存的数据文件。

2、基于内存的缓存
基于内存的缓存主要由 mod_mem_cache 模块实现,还是看个简单的配置吧,这样比较直观:-)

CacheEnable mem /
MCacheMaxObjectCount 20000
MCacheMaxObjectSize 1048576
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 10
MCacheRemovalAlgorithm GDSF
MCacheSize 131072

简单说一下上面一些指令的意思:
CacheEnable:启用缓存,使用基于内存的方式存储
MCacheMaxObjectCount:在内存中最多能存储缓存对象的个数,默认是1009,这里设置为20000
MCacheMaxObjectSize:单个缓存对象最大为 1M,默认是10000bytes
MCacheMaxStreamingBuffer:在缓冲区最多能够放置多少的将要被缓存对象的尺寸,这里设置为 65536,该值通常小于100000或 MCacheMaxObjectSize 设置的值
MCacheMinObjectSize:单个缓存对象最小为10bytes,默认为1bytes
MCacheRemovalAlgorithm:清除缓存所使用的算法,默认是 GDSF,还有一个是LRU,可以查一下 Apache 的官方文档,上面有些介绍
MCacheSize:缓存数据最多能使用的内存,单位是 kb,默认是100kb,这里设置为128M
保存重启 Apache 基于内存的缓存系统应该就能生效了,根据需要可以使基于内存的存储或硬盘文件的存储方式一起使用,只要指明不同的URL路径即可。

3、注意事项
使用缓存需要注意如下事项:
要使用缓存,必须使用指令 CacheEnable 启用它,目前可用的缓存类型为 disk 或 mem,禁止缓存可以使用 CacheDisable,如 CacheDisable /private
待缓存的 URL 返回的状态值必须为: 200、203、300、301 或 410
URL 的请求方式必须是 GET 方式
发送请求时,头部中包含 “Authorization: ”的字符串时,返回的内容将不会被缓存
URL 包含查询字符串,如问号?后的那些东西,除非返回的内容包含“Expires:”,否则不会被缓存
如果返回的状态值是 200,则返回的头部信息必须包含以下的一种才会被缓存:Etag、Last-Modified、Expires,除非设置了指令 CacheIgnoreNoLastMod On
如果返回内容的头部信息“Cache-Control:”中包含“private”,除非设置了指令 CacheStorePrivate On,否则不会被缓存
如果返回内容的头部信息“Cache-Control:”中包含“no-sotre”,除非设置了指令 CacheStoreNoStore On,否则不会被缓存
如果返回内容的头部信息“Vary:”中包含了“*”,不会被缓存
4、其它一些指令的介绍
如果你的网站有几个文件的访问非常频繁而又不经常变动,则可以在 Apache 启动的时候就把它们的内容缓存到内存中(当然要启用内存缓存系统),使用的是 mod_file_cache 模块,具体如下:
有多个文件可以用空格格开
MMapFile /var/www/html/index.html /var/www/html/articles/index.html
上面是缓存文件的内容到内存中,除此之外,还可以只缓存文件的打开句柄到内存中,当有请求进来的时候,Apache 直接从内存中获取文件的句柄,返回内容,和 MMapFile 指令很像,具体如下:
CacheFile /var/www/html/index.html /var/www/html/articles/index.html
上面两个指令所缓存的文件如果有修改的话,必须重启 Apache 或使用 graceful 之类的方式强制使 Apache 更新缓存数据,否则当用户访问的时候获取的不是最新的数据。
有时候需要根据某些特殊的头部信息来决定是否进行缓存,则可以使用如下指令:
当头部信息中包含 Set-Cookie 时则跳过不进行缓存操作
CacheIgnoreHeaders Set-Cookie
有时候需要缓存的时候跳过 URL 中的查询字符串?使用如下指令:
CacheIgnoreQueryString On

Apache 的缓存系统不仅可以缓存服务器本身的文件,也可以缓存通过代理得到的内容,对了,Apache 可以像 Squid 一样做代理,而且做的还不错,下篇文章就介绍一下 Apache 的代理功能吧。善用 Apache 的缓存功能,可以让你的网站速度提升不少。做为一个网站来说,虽然可用的各种缓存方案很多,但在 Web 服务器层做缓存的效率还是很值得一试的。

PS:关于Apache的编译

apache的configure帮助
进入apache的源文件目录后,执行
./configure –help
它会列出所有的东西,很多东西你都可以自定义。其中
–perfix=PATH 是设置安装路径
–bindir=DIR 是设置可执行文件的路径
–libexecdir=DIR 是设置libexec路径
–sysconfdir=DIR 是设置配置文件路径
还有很多,在./configure –help里都有列出来
光盘软件包里面的apache是原来编译好了的,具体的编译方式在安装以后可以可以执行strings /usr/sbin/httpd来查看,里面有很多东西,我们只看我们需要的东西,我这里复制出来你可以看下
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/var/logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
-D HTTPD_ROOT="/etc/httpd"

仅作参考

Cannot initialize zend_mm storage [win32]

Basically it means that you have exhausted every available thread and PHP can not start a new one. I recommend running PHP as CGI, application/x-httpd-php “/php/php.exe”, instead of using php5_module “/php/sapi/php5apache2.dll” to solve that problem. As a side note the win32 version of Apache can only handle a maximum pool of 600 threads, anything over that the threads get held in a wait proccess, no matter what ThreadLimit or Threadsperchild is set to. Yes the thread get assigned, but it not executed until the current working thread limit falls back below 600! Apache running under Win(64) or running under any version of Linux does not have those limitations.

关于Unable to load dynamic library ‘./php_mssql.dll’ 类似错误

APACHE错误日志:

PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_oci8.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pdo_oci.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pdo_oci8.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pdo_pgsql.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pdo_sqlite_external.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pgsql.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pspell.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_sybase_ct.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_ibm_db2.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_ifx.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_ingres2.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_maxdb.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_mcve.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_netools.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_oracle.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pdo_ibm.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\PHP\\ext\\php_pdo_informix.dll’ – \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0

这是由于php启动的时候加载了以上这些dll(php_oci8.dll、php_pdo_oci.dll等等),而这些dll具有外部依赖信息,比如,php_oci8.dll依赖oracle8i的客户端组件。

总结如下:
1、extension_dir要设置正确。
2、把所依赖的dll拷贝到%windir%\system32
3、或者将PHP的安装目录添加到%path%中.

还是不行,就按我上面的方法
就是把那些。DLL 都复制到windir%\system32目录下。
应该是把php_mysql.dll和libmysql.dll就可以搞定了。
其它的方法类似。
就是把他本身的DLL和所依赖的DLL都COPY到windir%\system32目录中就行。
重启下就知道了。

够简单的.

到底哪些扩展依赖哪些dll呢?请看下面的列表:
php_curl.dll CURL, Client URL library functions Requires: libeay32.dll, ssleay32.dll (bundled)
php_domxml.dll DOM XML functions PHP <= 4.2.0 requires: libxml2.dll
(bundled) PHP >= 4.3.0 requires: iconv.dll (bundled)
php_fdf.dll FDF: Forms Data Format functions. Requires: fdftk.dll
gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll,
php_iconv.dll ICONV characterset conversion Requires: iconv-1.3.dll
php_ingres.dll Ingres II functions Requires: Ingres II libraries
php_interbase.dll InterBase functions Requires: gds32.dll (bundled)
php_java.dll Java functions PHP <= 4.0.6 requires: jvm.dll (bundled)
php_ldap.dll LDAP functions PHP <= 4.2.0 requires libsasl.dll(bundled),
PHP >= 4.3.0 requires libeay32.dll,ssleay32.dll (bundled)
php_mcrypt.dll Mcrypt Encryption functions Requires: libmcrypt.dll
php_mhash.dll Mhash functions PHP >= 4.3.0 requires: libmhash.dll (bundled)
php_mcrypt.dll Mcrypt Encryption functions Requires: libmcrypt.dll
php_mhash.dll Mhash functions PHP >= 4.3.0 requires: libmhash.dll (bundled)
php_msql.dll mSQL functions Requires: msql.dll (bundled)
php_mssql.dll MSSQL functions Requires: ntwdblib.dll (bundled)
php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll (bundled)
php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysqli.dll (bundled)
php_oci8.dll Oracle 8 functions Requires: Oracle 8.1+ client libraries
php_openssl.dll OpenSSL functions Requires: libeay32.dll (bundled)
php_oracle.dll Oracle functions Requires: Oracle 7 client libraries
php_sybase_ct.dll Sybase functions Requires: Sybase client libraries
php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll (bundled)
php_xslt.dll XSLT functions PHP <= 4.2.0 requires sablot.dll, expat.dll (bundled).
PHP >= 4.2.1 requires sablot.dll, expat.dll, iconv.dll (bundled).

ZendOptimizer配置指南

Zend Optimizer是由PHP核心引擎“Zend”创建者Zend技术公司所开的免费PHP优化软件。据Zend公司透露使用这个软件某些情况下至少可以提高性能30%以上!这么好的免费大餐当然要用,现在我们来谈谈如何配置这套软件。

Zend Opt的安装是傻瓜化的,安装向导会自动根据你的选择来修改php.ini帮助你启动这个引擎。下面我们来介绍下Zend Opt的配置选项,帮助你最大化自定义合理的配置。下边是我所用的配置文件,看不懂也不要着急,看完本文你就会完全明白。

[Zend]
zend_optimizer.optimization_level=1023
zend_optimizer.encoder_loader=0
zend_extension_ts="C:\Program Files\Zend\lib\ZendOptimizer.dll"

现在我们来介绍下上边这个配置文件的含义:
zend_optimizer.optimization_level 《== 优化程度,这里定义启动多少个优化过程。
zend_optimizer.encoder_loader 《== 是否允许处理由Zend Encoder加密的PHP文件。
zend_extension_ts 《== 优化器所在目录。

优化过程 zend_optimizer.optimization_level 详细解释

这里最为重点的部分,仔细看!Zend Opt总共有10个优化过程,从理论上说开的越多性能越好。当然,理论和实际永远都存在着差距。优化过程开启的越多对性能消耗也相对也越大,Zend Opt的10个优化过程并不相同也就是说效果不是平均的。Zend公司定义的最高值(High模式)为15,这里15指的是开启1-4号优化过程。当然,很多朋友并不满足于此,毕竟最高也只开启4个优化过程连总数的一半都没有。各个优化过程的对应的数字代码(值)如下:

不使用 0 <= 如果这样不如不装,还能节约点内存说!
优化过程1(PASS1) 1
优化过程2(PASS2) 2
优化过程3(PASS3) 4
优化过程4(PASS4) 8
优化过程5(PASS5) 16
优化过程6(PASS6) 32
优化过程7(PASS7) 64
优化过程8(PASS8) 128
优化过程9(PASS9) 256
优化过程10(PASS10) 512

以何种方式开启优化过程是通过这些数字代码(值)相加所得的和作为此参数的参数值来控制的。如我的配置文件中zend_optimizer.optimization_level = 1023 , 这里的1023是优化过程1到优化过程10全部数字代码(值)相加得到的和,表示开启全部10个优化过程。刚才所提到的Zend公司定义的High模式值为15,15表示同时开启优化过程1-4。

加密代码支持 zend_optimizer.encoder_loader 详细解释对于这个参数,我想如果没有看过Zend Opt FAQ文档的朋友大多数并不知道。这个参数用来告诉Zend Opt是否去支持被Zend ncoder加密过的代码。默认情况下Zend Opt将支持加密过的代码。如果不使用被加密过的代码我推荐你关闭此选项。这个功能牵扯到解包反码的过程,会导致系统负荷的加重。我的朋友已经开发完毕相应的反编译工具,预计春节之后推出。

这个参数的值只有两个 0 关闭, 1 开启。默认为1,推荐设置为0。

模块定位 zend_extension_ts 无需解释

这是最简单的地方,参数就是Zend Opt模块在硬盘上的安装路径。

Table ‘xxxx’ is marked as crashed…

今天VODCMS的管理员反映无法登陆后台,我想可能是Apache或者数据库又出错了。

重启了下Apache,正如所料想的一样,问题依旧。

查看了一下数据库的表,发现有个表出错了,修复不能!

Table Op Msg_type Msg_text
vodcms.vodcms_members optimize Error Table ‘.\vodcms\vodcms_members’ is marked as crash…
vodcms.vodcms_members optimize Error Table ‘vodcms_members’ is marked as crashed and la…
vodcms.vodcms_members optimize error Corrupt

网上搜了搜,发现这个错误很严重,数据基本上没有了,不管用MySQL提供的修复工具还是PhpMyAdmin都修复不能,查看了下data文件夹,发现少了个*.MYD文件。

所以呢,从新从网上下了个VODCMS5.0将错误的表重新创建,数据重新导入,

要是错误出在其他的重要的数据表上的话问题可就严重了。

记得前些时候BBS的post表也出过错,不过能修复好,要是出现这样的错误可就严重了。

所以以后记得要随时备份数据库。

Windows NT系统下的Apache性能优化

一般来说,WinNT系统下使用IIS,而Apache在Linux下应用的比较多,但是依然有很多人在WinNT系统下使用Apache而非IIS,可能是基于对Windows系统的熟悉吧。今天就来说一下在Windows系统下如果优化Apache的性能。

mpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说 mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。

mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。

ThreadsPerChild
这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。

mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。

MaxRequestsPerChild
该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.

官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

因此这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为0或很大的数字,否则设置一个小的数值。需要说明的是,如果这个值设置的太小的话会造成Apache频繁重启,在日志文件中会看到如下的文字:

Process exiting because it reached MaxRequestsPerChild. Signaling the parent

这样一来降低了Apache的总体性能。

另外,可以通过查看Apache提供的server-status(状态报告)来验证当前所设置数值是否合理,在httpd.conf文件中做如下设置来打开它:

# 首先需要加载mod_status模块
LoadModule status_module modules/mod_status.so

# 然后设置访问的地址
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
# 如果限制某个IP访问则设置为 Allow from 192.168.1.1
Allow from all
</Location>
综合来说,因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:

<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 5000
</IfModule>

参考资料:
Apache参考手册
Apache模块 mod_status

Linux系统信息查看命令大全

系统

资源

磁盘和分区

网络

进程

用户

服务

程序

Apache配置文件httpd.conf

原文说明

文件全局说明
基于 NCSA 服务的配置文件。这是Apache服务器主要配置文件。它包含服务器的影响服务器运行的配置指令。参见<URL:http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息
不要只是简单的阅读这些指令信息而不去理解它。这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。
这些配置指令被分为下面三个部分: 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有关的文档(可能在 <URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.htmllockfile>)。这将会使你自己也能解决很多问题。
路径的结尾不要添加斜线。
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 80
 
动态共享支持(DSO)
为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行,因此,在这里包含了这些指令,以便能在使用它之前激活。那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)

 
 
ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。默认为off

第二区:“主”服务配置

<IfModule !mpm_winnt.c> <IfModule !mpm_neware.c>
 
如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动然后再将它切换为你想要使用的用户或组。

节在这些系统上不要使用“Group -1”。
 
User nobody Group -1 </IfModule> </IfModule>
 
ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。作为一个出错文档,这个地址显示在server-generated页上,例如:admin@your-domain.com

ServerAdmin kreny@sina.com
 
 
ServerName指定Apache用于识别自身的名字和端口号。通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错


ServerName 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


 
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指令使一个站点的目录具有只读属性的示例:

 
 
DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名

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时记录主机名,如http://www.apache.org;为off时记….62.129.132。 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会至少造成对 nameserver 进行一次查询。

HostnameLookups Off
 
 
EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。在一些系统上,关闭它会提升系统性能(与文件系统类型无关);具体情况请参阅http://httpd.apache.org/docs-2.0/mod…tmlenablemmap

 
 
EnableSendfile:控制是否使用sendfile kernel支持发送文件(如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统(NFS)上,请你关闭它。参见http://httpd.apache.org/docs-2.0/mod…enablesendfile

 
 
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信息,可以使用下面的指令

 
 
如果你想要使用一个文件记录access,agent和referer信息,你可以如下定义这个指令:

 
 
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 别名 真实名




 
 
这将改变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套接字的脚本接口路径。

</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/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/*
 
AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^
 
DefaultIcon 为那些没有显式定义图标的文件提供处理

DefaultIcon /icons/unknown.gif
 
 
AddDescription允许你在server-generated索引后放置一个简短的说明。只对FancyIndexed指令有效。格式:AddDescription "说明" 文件名

 
 
ReadmeName指定服务器默认查找的README文件的名字,并添加到目录列表中

ReadmeName README.html HeaderName HEADER.html
 
 
IndexIgnore指定目录索引忽略并且不包含在列表中的文件名集合,支持shell类型的通配符。

IndexIgnore .??* *~ * HEADER* README* RCS CVS *,v *,t
 
 
AddEncoding允许你在信息传送中使用(Mosaic/X 2.1+)解压缩信息,注意:不是所有的浏览器都支持这个选项。尽管名字相似,但是下列的指令与上面的FancyIndexing定制指令不同。

AddEncoding x-compress Z AddEncoding x-gzip gz tgz
 
 
DefaultLanguage和AddLanguage允许你指定文档的语言。这使你可以让用户用容易理解的语言浏览文档。






AddLanguage da .dk AddLanguage nl .nl AddLanguage en .en AddLanguage et .et AddLanguage fr .fr AddLanguage de .de AddLanguage he .he AddLanguage el .el AddLanguage it .it AddLanguage ja .ja AddLanguage pl .po AddLanguage ko .ko AddLanguage pt .pt AddLanguage nn .nn AddLanguage no .no AddLanguage pt-br .pt-br AddLanguage ltz .ltz AddLanguage ca .ca AddLanguage es .es AddLanguage sv .sv AddLanguage cz .cz AddLanguage ru .ru AddLanguage tw .tw AddLanguage zh-tw .tw AddLanguage hr .hr
 
LanguagePriority允许你在会话过程中优先使用一些语言。

LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw
 
 
ForceLanguagePriority 允许你为MULTIPLE CHOICES(Prefer)[在通讯的情况下] 或NOT ACCEPTABLE(Fallback)[没有可接受的语言匹配的情况]提供一个结果页。

ForceLanguagePriority Prefer Fallback
 
 
为发送出的所有页指定默认的字符集,这总是一个好主意,并且为你的 web站点的国际化打开了大门,这不正是你曾经想要的吗。同样地,指定默认字符集有一些小的损害,如一个使用iso-8859-1(latin1)标准命令的页面,除非以别的方式指定例如你仅仅以显式方式声明它。也有一些与那些总是鼓励你使用默认字符集的javascropt和URL语法有关的浏览器安全原因。

AddDefaultCharset ISO-8859-1 AddDefaultCharse GB2312
 
 
一般以文件扩展名的方式使用字符集。也许你想要避免与语言扩展发生碰撞,除非你在每次改变后都做了很好的测试。参见http://www.iana.org/assignments/char…��得字符集 的名字列表和它们各自的RFCs。

AddCharset ISO-8859-1 .iso8859-1 .latin1 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset ISO-8859-3 .iso8859-3 .latin3 AddCharset ISO-8859-4 .iso8859-4 .latin4 AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset ISO-2022-JP .iso2022-jp .jis AddCharset ISO-2022-KR .iso2022-kr .kis AddCharset ISO-2022-CN .iso2022-cn .cis AddCharset Big5 .Big5 .big5
 
对于俄语,使用了多个字符集(如何使用主要依靠客户端):

AddCharset WINDOWS-1251 .cp-1251 .win-1251 AddCharset CP866 .cp866 AddCharset KOI8-r .koi8-r .koi8-ru AddCharset KOI8-ru .koi8-uk .ua AddCharset ISO-10646-UCS-2 .ucs2 AddCharset ISO-10646-UCS-4 .ucs4 AddCharset UTF-8 .utf8
 
 
下面的字符集没有映射到一个特定的标准(iso)上,但是它们在浏览器中被广泛的支持。注意那些大写字母。 (它不应该,但是它是为兼容一些浏览器而做)

AddCharset GB2312 .gb2312 .gb AddCharset utf-7 .utf7 AddCharset utf-8 .utf8 AddCharset big5 .big5 .b5 AddCharset EUC-TW .euc-tw AddCharset EUC-JP .euc-jp AddCharset EUC-KR .euc-kr AddCharset shift_jis .sjis
 
 
AddType允许你为指定的文件类型添加或覆盖mime.types文件中配置的MIME

AddType application/x-tar .tgz AddType image/x-icon .ico
 
 
AddHandler允许你映射确定的文件扩展名到“handlers”: 与文件类型无关的行为。这既能编译到服务器中也可以添加到Action指令中(看下面)。为了在ScriptAliased指令指定的以外使用CGI脚本:

(要使它可用,你还需要在Options中添加“ExecCGI”。
 
AddHandler cgi-script .cgi

 
 
对于那些包含他们自己的HTTP头的文件

 
 
对于server-parsed imagemap文件:

 
 
agemap 文件:

AddHandler imap- 文件映像
 
 
对于类型映像转移资源)

(这是默认的设定以允许Apache的“It Worked”页能多种语言分发)。
 
AddHandler type-map var
 
过滤器允许你在将它发送到客户端前进行处理。


 
 
Action让你定义当调用匹配的媒体文件时将要执行的脚本。这将减少那些经常使用的CGI脚本的URL路径名的重复输入。格式:Action media/type /cgi-script/location 格式:Action handler-name /cgi-script/location

 
 
可配置的错误应答有三种风格: 1)plain text 2)local redirects 3) external redirects

 
 
综合应用这些指令,我们可以创建一个国际化的出错应答。








ErrorDocument 403 /error.php
 
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var ErrorDocument 410 /error/HTTP_GONE.html.var ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

 
 
下面的命令更改标准的HTTP应答行为以处理己知的浏览器问题。

BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0
 
 
下面命令关闭对那些没有尾部“/”的目录的非GET请求的重定向,这些命令修复了微软的采用DAV方法不能正确处理重定向的WEB文件夹的问题。 Apple下的DAV文件系统和Gnome下的VFS对DAV的支持也是采用这样的方法进行处理的。

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully BrowserMatch "^gnome-vfs" redirect-carefully
 
 
允许你使用URL:http://servername/server-status来通过mod_status生 成并报告服务器状态信息。改变.example.com为你自己的域名。

 
 
允许使用URL:http://servername/server-info来远�…��配置信息 (需要mod_info.c支持)。改变“.example.com”为你自己的域名。

 
 
代理服务器命令,去掉下面的行使代理服务可用。

 
 
安装或关闭HTTP/1.1“通道”头处理。(“Full”添加服务器版本信息,“Block”移掉所有输出“通道”头信息。可以设为下面各选项之一:Off | On | Full | Block




 
 
附加的特定模块配置。

<IfModule mod_ssl.c> Include conf/ssl.conf </IfModule>
 

第三区:虚拟主机

VirtualHost:你可以通过设置虚拟主机容器以实现在你的主机上保有多个域名/主机名。大多数配置信息只使用基于名字的虚拟主机,因此服务器不必担心IP地址的问题,下面的命令以*号代替虚拟主机名。

 
 
使用基于名字的虚拟主机。