apache的配置优化

【APACHE的工作方式】 prefork模式(默认) 这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。 这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。 worker模式 此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。 【apache配置参数备注】 1、KeepAlive On/Off KeepAlive指的是保持连接活跃,类似于Mysql的永久连接。换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不 需要再一次连接,避免每次请求都要新建一个连接而加重服务器的负担。一般情况下,图片较多的网站应该把KeepAlive设为On。 2、KeepAliveTimeOut number 如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话,第一次连接就会中断,再新建第二个连接。它的设置一般考虑图片或者JS等文件两次请求间隔,我的设置经验为3-5秒。 3、MaxKeepAliveRequests 100 一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。 4、StartServers        10 设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。 5、MinSpareServers     10 设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前 空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。 6、MaxSpareThreads     75 设置空闲子进程的最大数量。如果当前有超过MaxSpareServers数量的空 闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。如果你将该指令的值设置为比 MinSpareServers小,Apache将会自动将其修改成”MinSpareServers+1″。 7、ServerLimit       2000 服务器允许配置的进程数上限。只有在你需要将MaxClients设置成高于默认值256的时候才需要使用。要将此指令的值保持和MaxClients一样。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。 8、MaxClients        256 用于伺服 客户端请求的最大请求数量(最大子进程数),任何超过MaxClients限制的请求都将进入等候队列。默认值是256,如果要提高这个值必须同时提高 ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初 始值就是4000/2=2000。 9、MaxRequestsPerChild  0 apache.exe进程包括一个是父进程、一个是子进程,父进程接到访问请求后,将请求交由子进程处理。MaxRequestsPerChild这个指 令设定一个独立的子进程将能处理的请求数量。在处理“MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。  如果 MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动 子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存 较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。所以一般情况下,如果你发现服务器的内存直线上升,建议修改该参数试试。 【apache的Rewrite】 1、是否支持使用.htaccess文件来定义或者修改apache的设置,是否支持目录列表
<Directory /> Options indexes FollowSymLinks AllowOverride All </Directory>
2、rewrite 配置 RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) #定义重写发生的条件 RewriteRule ^(.*)$ /index.php/$1 [L] RewriteLog D:/lib/rewrite.log #设置rewrite日志文件,主要用来rewrite调试 RewriteLogLevel 3 #设置rewrite日志文件记录的等级,主要用来rewrite调试
  【apache的Gzip功能】 gzip可以级大的加速网站.有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的.在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate
如果要开启gzip的话,一定要打开下面二个模块. LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so 设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源. DeflateCompressionLevel 3 AddOutputFilter DEFLATE html xml php js css <Location /> SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary Header append Vary User-Agent env=!dont-vary #对代理的设置 </Location> 下面二个测试网站 http://www.whatsmyip.org/mod_gzip_test/ http://www.gidnetwork.com/tools/gzip-test.php 测试数据对css Original Size: 44 KB Gzipped Size: 10 KB Data Savings: 77.27% 测试数据js Original Size: 6 KB Gzipped Size: 2 KB Data Savings: 66.67% 测试数据php Original Size: 62 KB Gzipped Size: 15 KB Data Savings: 75.81% 上面只是随机拿的几个数据,看的出来,使用了gzip压缩后文件小多了. 另外讲一下,有关squid对gzip的处理 在squid中,对同一个URL只保留一份缓存。对于如果不同browser(是否支持压缩) 如果频繁交替访问,例如:对某个cache住的目标,一个http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请 求又会导致squid再次更新缓存。这样那squid缓存数据就要频繁更新,这就极大的降低了cache命中率。 不过还好,现实环境中不支持压缩的browser毕竟是很少的情况,所以对于缓存命中率的降低很有限.

centos手动编译安装apache、php、mysql

卸载旧版本apache、php、mysql:

sudo yum erase httpd
sudo yum erase php php-cli
sudo yum erase mysql

下载编译安装apache 2.2.19:

http://httpd.apache.org/download.cgi
cd ~
wget http://mirror.bjtu.edu.cn/apache/httpd/httpd-2.2.19.tar.bz2
tar -jxvf httpd-2.2.19.tar.bz2
cd httpd-2.2.19
sudo yum install gcc
./configure --prefix=/opt/httpd --enable-so --enable-rewrite
make
sudo make install
sudo /opt/httpd/bin/httpd -k start
安装完apache,用浏览器访问http://localhost,能正常显示说明装好了。

下载安装mysql 5.5.13:

http://dev.mysql.com/downloads/mysql/#downloads 下载这2个(64位的): MySQL-client MySQL-server
sudo yum install libaio
sudo rpm -i MySQL-client-5.5.13-1.rhel5.x86_64.rpm
sudo rpm -i MySQL-server-5.5.13-1.rhel5.x86_64.rpm
sudo /etc/init.d/mysql start
/usr/bin/mysqladmin -u root password '1'
sudo cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
sudo /etc/init.d/mysql restart
mysql -uroot -p1

下载编译安装php 5.3.6:

http://php.net/downloads.php
sudo yum install libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel libmcrypt libmcrypt-devel libtool-ltdl-devel
tar -jxvf php-5.3.6.tar.bz2
cd php-5.3.6
./configure --prefix=/opt/php -with-apxs2=/opt/httpd/bin/apxs --with-curl --with-mcrypt --enable-mbstring --with-iconv --with-gd -with-jpeg-dir=/usr/local/lib --enable-pdo --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd
make
sudo make install
sudo cp php.ini-development /opt/php/lib/php.ini
sudo ln -s /opt/php/bin/php /usr/bin/php
sudo vi /opt/php/lib/php.ini

把include_path前面的分号删除,改成include_path = "/opt/php/lib/php"
sudo vi /opt/httpd/conf/httpd.conf
在最下面加入一行AddHandler application/x-httpd-php .php
sudo /opt/httpd/bin/httpd -k restart
sudo vi /opt/httpd/htdocs/phpinfo.php
phpinfo.php的内容如下:
<?php
phpinfo();
?>
安装完php,重启apache,用浏览器访问http://localhost/phpinfo.php,能正常显示说明php装好了。搜索mysqlnd、pdo_mysql、mysqli,如果有,则说明php能访问mysql。

PHP常用配置

http://www.cnblogs.com/sink_cup/archive/2011/10/28/php_ini.html

把apache加入系统service,开机自启动

sudo cp /opt/httpd/bin/apachectl /etc/init.d/httpd
sudo vi /etc/init.d/httpd
在文件开头加入下面几行:
#!/bin/sh
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server. 
sudo chmod +x /etc/init.d/httpd
sudo /sbin/chkconfig --add httpd
sudo /sbin/chkconfig --list httpd
sudo ln -s /sbin/chkconfig /usr/bin/chkconfig
sudo ln -s /sbin/service /usr/bin/service

把mysql加入系统service,开机自启动

sudo /sbin/chkconfig --list mysql
通过rpm安装的mysql,已经开机自启动了。

安装php扩展ssh2

先安装libssh2 http://sourceforge.net/projects/libssh2/ ./configure make sudo make install 再安装ssh2 http://pecl.php.net/package/ssh2 /opt/php/bin/phpize && ./configure --with-ssh2 && make sudo make install 在/opt/php/lib/php.ini中加1行: extension=ssh2.so

centos Apache、php、mysql默认安装路径

apache:
如果采用RPM包安装,安装路径应在 /etc/httpd目录下
apache配置文件:/etc/httpd/conf/httpd.conf
Apache模块路径:/usr/sbin/apachectl
web目录:/var/www/html
如果采用源代码安装,一般默认安装在/usr/local/apache2目录下
php:
如果采用RPM包安装,安装路径应在 /etc/目录下
php的配置文件:/etc/php.ini
如果采用源代码安装,一般默认安装在/usr/local/lib目录下
php配置文件: /usr/local/lib/php.ini
或/usr/local/php/etc/php.ini
mysql:
如果采用RPM包安装,安装路径应在/usr/share/mysql目录下
mysqldump文件位置:/usr/bin/mysqldump
mysqli配置文件:
/etc/my.cnf或/usr/share/mysql/my.cnf
mysql数据目录在/var/lib/mysql目录下
如果采用源代码安装,一般默认安装在/usr/local/mysql目录下

CentOS下yum安装LAMP

准备篇: 1、配置防火墙,开启80端口、3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙 备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败, 正确的应该是添加到默认的22端口这条规则的下面 如下所示: ############################## 添加好之后防火墙规则如下所示 ############################## # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT ################################################################################################## /etc/init.d/iptables restart #最后重启防火墙使配置生效 2、关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq #保存,关闭 shutdown -r now #重启系统 安装篇: 一、安装Apache yum install httpd #根据提示,输入Y安装即可成功安装 /etc/init.d/httpd start #启动Apache 备注:Apache启动之后会提示错误: 正在启动 httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName 解决办法: vi /etc/httpd/conf/httpd.conf #编辑 找到 #ServerName www.example.com:80 修改为 ServerName www.osyunwei.com:80 #这里设置为你自己的域名,如果没有域名,可以设置为localhost :wq! #保存退出 chkconfig httpd on #设为开机启动 /etc/init.d/httpd restart #重启Apache 二、安装MySQL 1、安装MySQL yum install mysql mysql-server #询问是否要安装,输入Y即可自动安装,直到安装完成 /etc/init.d/mysqld start #启动MySQL chkconfig mysqld on #设为开机启动 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可) 2、为root账户设置密码 mysql_secure_installation 回车,根据提示输入Y 输入2次密码,回车 根据提示一路输入Y 最后出现:Thanks for using MySQL! MySql密码设置完成,重新启动 MySQL: /etc/init.d/mysqld restart #重启 /etc/init.d/mysqld stop #停止 /etc/init.d/mysqld start #启动 三、安装PHP5 1、安装PHP5 yum install php 根据提示输入Y直到安装完成 2、安装PHP组件,使 PHP5 支持 MySQL yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt 这里选择以上安装包进行安装 根据提示输入Y回车 /etc/init.d/mysqld restart #重启MySql /etc/init.d/httpd restart #重启Apche 配置篇 一、Apache配置 vi /etc/httpd/conf/httpd.conf #编辑文件 ServerTokens OS  在44行 修改为:ServerTokens Prod (在出现错误页的时候不显示服务器操作系统的名称) ServerSignature On  在536行 修改为:ServerSignature Off (在错误页中不显示Apache的版本) Options Indexes FollowSymLinks  在331行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录) #AddHandler cgi-script .cgi 在796行 修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行) AllowOverride None  在338行 修改为:AllowOverride All (允许.htaccess) AddDefaultCharset UTF-8 在759行 修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码) Options Indexes MultiViews FollowSymLinks 在554行 修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构) DirectoryIndex index.html index.html.var 在402行 修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var (设置默认首页文件,增加index.php) KeepAlive Off 在76行 修改为:KeepAlive On (允许程序性联机) MaxKeepAliveRequests 100 在83行 修改为:MaxKeepAliveRequests 1000 (增加同时连接数) :wq! #保存退出 /etc/init.d/httpd restart #重启 rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页 二、php配置 vi /etc/php.ini #编辑 date.timezone = PRC #在946行 把前面的分号去掉,改为date.timezone = PRC disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname #在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。 expose_php = Off #在432行 禁止显示php版本的信息 magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止SQL注入 short_open_tag = ON #在229行支持php短标签 open_basedir = .:/tmp/ #在380行 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/ :wq! #保存退出 /etc/init.d/mysqld restart #重启MySql /etc/init.d/httpd restart #重启Apche 测试篇 cd /var/www/html vi index.php #输入下面内容 <?php phpinfo(); ?> :wq! #保存退出 在客户端浏览器输入服务器IP地址,可以看到如下图所示相关的配置信息! 注意:apache默认的程序目录是/var/www/html 权限设置:chown apache.apache -R /var/www/html 至此,CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)教程完成!

php.ini 配置文件中文说明

[php] ;;;;;;;;;;; ; 警告 ; ;;;;;;;;;;; ; 此配置文件是对于新安装的PHP的默认设置. ; 默认情况下,PHP使用此配置文件安装 ; 此配置针对开发目的,并且*不是*针对生产环境 ; 基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recommended ; 以及在线文档 http://php.net/manual/en/security.php. ;;;;;;;;;;;;;;;;;;; ; 关于 php.ini   ; ;;;;;;;;;;;;;;;;;;; ; 此文件控制了PHP行为的很多方面.  为了让PHP能够读取它 ; 必须命名为 'php.ini'.  PHP 在其当前工作目录,由PHPRC环境变量指定目录 ; 以及由编译时指定的目录(按此顺序)查找此文件 ; 在Windows环境下, 编译时目录是Windows目录. ; 在命令行模式下查找php.ini的目录可以被-c参数覆盖. ; ; 此文件的语法非常简单. ; 空行和由分号开始的行会被忽略(你可能已经猜到了). ; 段的开头(例如 [Foo]) 同样会被悄悄忽略 ; 即使在将来他们可能会有其他作用. ; ; 使用以下语法来设定指令: ; directive = value ; 指令 = 值 ; 指令名称是 *大小写敏感* - foo=bar 和 FOO=bar 是不同的. ; ; 值可以是字符串,数值,PHP常量 (例如 E_ALL 和 M_PI), ; INI 常量 (On, Off, True, False, Yes, No 和 None) 或者一个表达式 ; (例如 E_ALL & ~E_NOTICE), 或者带引号的字串 ("foo"). ; ; 在INI文件中的表达式只能使用逻辑运算和圆括号: ; |        逻辑或 ; &       逻辑与 ; ~       逻辑非 ; !        取反 ; ; 逻辑标志可以使用1,On,True或者Yes来打开. ; 也可以使用0, Off, False 或者 No来关闭. ; ; 在等号后面不写任何内容代表了一个空字符串 ; 或者使用 None 关键词: ; ;  foo =         ; 将foo设置成一个空字串 ;  foo = none    ; 将foo设置成一个空字串 ;  foo = "none"  ; 将foo设置成字串 'none' ; ; 如果你在值中使用了常量, 并且这个常量属于一个动态加载的扩展模块 ; (不论是PHP扩展还是Zend扩展), ; 那你只能在加载这些扩展 *之后* 使用这些常量. ; ; ;;;;;;;;;;;;;;;;;;; ; 关于这个文件  ; ;;;;;;;;;;;;;;;;;;; ; 在php.ini-dist 文件中所有的值都相当于内建的默认值 ; (就是如果没有使用php.ini, 或者如果你删除了这些行, ; 就和内建的默认值一样). ;;;;;;;;;;;;;;;;;;;; ; 语言选项 ; ;;;;;;;;;;;;;;;;;;;; ; 打开在Apache下的PHP脚本语言引擎 engine = On ; 打开Zend Engine兼容模式(PHP 4.x) zend.ze1_compatibility_mode = Off ; 允许 <? 标签.  否则,只有 <?php 和 <script> 标签被认为是PHP脚本. ; 注意: 尽可能避免在开发可重新发布的程序或者库的时候使用简略标签,或者在不受你控制的服务器下发布, ; 因为简略标签可能不被目标服务器支持.为了可移植性, 可重新发布的代码, 请不要使用简略标签 short_open_tag = On ; 使用ASP风格 <% %> 标签. asp_tags = Off ; 浮点数中数值的有效位数(浮点数精度). precision    =  12 ; 强制2000年兼容 (可能引起不兼容浏览器的问题) y2k_compliance = On ; 输出缓冲允许在你发送了body内容之后发送header(包括 cookies) ; 代价是稍稍减缓了PHP输出层 ; 你可以在运行时调用 output buffering 函数来打开此功能 ; 你也可以将此指令设置为On来对所有文件打开输出缓冲 ; 如果你想将这个缓冲区限制到特定大小 - 你可以使用最大的字节数来代替'On',来作为这个指令的参数 (例如 output_buffering=4096). output_buffering = Off ; 你可以将所有你脚本输出的内容重定向到指定函数. ; 例如, 如果你设置 output_handler 到 "mb_output_handler", ; 字符编码会被转换成为指定的编码.. ; 设置任何的输出处理句柄会自动打开输出缓冲. ; 注意: 如果想编写可移植脚本就不要依赖此INI配置 ;       取而代之的是, 明确的使用 ob_start() 来设置输出处理句柄. ;       使用此ini指令可能引起问题,除非你很清楚的理解脚本正在做什么. ; 注意: 你不能同时使用 "mb_output_handler" 和 "ob_iconv_handler" ;       并且你不能同时使用 "ob_gzhandler" 和 "zlib.output_compression". ; 注意: 如果使用zlib.output_handler指令开启zlib输出压缩, 该指令必须为空. ;output_handler = ; 使用zlib库对输出进行压缩 ; 对此选项的有效值是 'off', 'on', 或者字节数 (用来压缩的缓冲大小 , 默认是 4KB) ; 注意: 结果的chunk大小可能由于压缩对象的大小而不同. ;       PHP输出块的大小一般压缩之后每个大小时几百个字节. ;       如果你希望藉由一个大块的堆大小来获取更好的性能, 需要额外的打开 output_buffering 选项. ; 注意: 你必须使用 zlib.output_handler 来替代标准的 ;       output_handler, 否则输出可能会有问题. zlib.output_compression = Off ;zlib.output_compression_level = -1 ; 这里激活 zlib.output_compression 之后,你无法再指定额外的输出处理. ; 这个设置和 output_handler 一样,但是处理顺序不同. ;zlib.output_handler = ; 立即刷新告知 PHP 让输出层在每次输出块之后立刻自动刷新. ; 这和每次调用print()或者echo()函数以及任何一种HTML块后调用flush()一样. ; 打开此选项会严重导致性能下降,一般只有用于调试情况下才建议打开. implicit_flush = Off ; 如果反序列器找到一个可以作为示例的未定义类.未序列化的回调函数会被调用(使用未定义的类名作为参数), ; 如果特定的函数未被定义或者如果此函数没有包含/实现丢失的类,则会发生一个警告. ; 如果只有你真想要实现类似的回调函数,才设定此入口. unserialize_callback_func= ; 当浮点和双精度被序列化后,浮点号后由 serialize_precision 指定存储精确度的有效位数. ; 默认值是当浮点数被反序列解码后,数值仍旧相同. serialize_precision = 100 ; 是否打开强制通过引用传递参数给函数 ; 此方法被反对并且很有可能在未来版本的PHP/Zend中不再被支持. ; 被孤立的指定的方法是参数应该在函数被声明的时候按照引用传入. ; 你被鼓励来尝试上述方法并关闭此选项来确保你脚本在今后的新版本中仍旧可以正常工作 ( 每次你使用此特性的时候会受到一个警告 ; 并且参数会传值而不是传引用). allow_call_time_pass_reference = On ; ; 安全模式 ; safe_mode = Off ; 默认情况下,安全模式在打开文件时,使用UID来比对检测. ; 如果你只想使用GID做宽松的比对, ; 打开 safe_mode_gid. safe_mode_gid = Off ; 当 safe_mode 被打开, 此目录下包含的文件和子文件夹的UID/GID 检测会被绕过. ; (目录必须在 include_path 中存在或者必须在包含时使用全路径) safe_mode_include_dir = ; 当 safe_mode 被打开, 只有在 safe_mode_exec_dir 中定义的可执行文件能够通过exec函数组打开执行. safe_mode_exec_dir = ; 设定某些的环境变量可能成为潜在的安全隐患. ; 此指令包含一个逗号分隔的前导列表. ; 在安全模式中, 用户可能只能改变符合这里所给出前导字符的变量. ; 默认情况下,用户只能改变以PHP_开头的变量(例如. PHP_FOO=BAR). ; ; 注意:  如果此指令为空, PHP会允许用户修改任何环境变量! safe_mode_allowed_env_vars = PHP_ ; 此指令包含了一个用逗号分隔的环境变量列表, 用户无法通过 putenv() 函数来修改列表中的环境变量. ; 这些变量即便已经在 safe_mode_allowed_env_vars 所设定的列表中,也会被被保护不允许修改. safe_mode_protected_env_vars = LD_LIBRARY_PATH ; 如果设置了open_basedir, 将会限制文件操作只能是此指令下的目录和子目录. ; 此指令对于每目录或者每虚拟主机配置文件最有意义. 此指令* 不会 *受安全模式开或者关的影响. ;open_basedir = ; 此指令允许你为了安全原因关闭指定的函数. ; 它接受以逗号分隔的函数名的列表. ; 此指令* 不会 *受安全模式开或者关的影响. disable_functions = ; 此指令允许你由于安全原因关闭指定的类. ; 它接受以逗号分隔的类名的列表. ; 此指令* 不会 *受安全模式开或者关的影响. disable_classes = ; 语法高亮模式的色彩. 任何在 <span style="color: ???????"> 中可接受的值都可以使用. ;highlight.string  = #DD0000 ;highlight.comment = #FF9900 ;highlight.keyword = #007700 ;highlight.bg      = #FFFFFF ;highlight.default = #0000BB ;highlight.html    = #000000 ; 如果打开, 即便用户放弃了的请求也会被执行完成. ; 在执行可能被用户打断或者浏览器超时所中断的请求时打开此选项. ; ignore_user_abort = On ; 指定PHP使用的实际路径的缓冲. 对于PHP打开很多文件来处理很多文件操作的系统上,应该增加此值. ; realpath_cache_size=16k ; 对于给定文件或者目录的缓冲真实路径信息的缓冲保留秒数. 对于很少修改文件的系统可以考虑增加此值. ; realpath_cache_ttl=120 ; ; 其他 ; ; 考虑到PHP可能被其所安装的服务器上暴露的事实(例如. 被web服务器作为头部信息的签名). ; 任何情况下这虽然不是安全威胁, 仍有可能暴露在你的服务器上是否正在使用PHP. expose_php = On ;;;;;;;;;;;;;;;;;;; ; 资源限制 ; ;;;;;;;;;;;;;;;;;;; ; 每个脚本最大执行秒数 max_execution_time = 30 ; 每个脚本用来分析请求数据的最大时间 max_input_time = 60 ; 最大输入变量的嵌套级别 ;max_input_nesting_level = 64 ; 每个脚本能够使用的最大内存数量 (128MB) memory_limit = 128M ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 错误处理和记录 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 错误报告时一个位. 对每一个数值取或可以得到最终的报告级别 ; E_ALL             - 所有错误和警告 (不包含 E_STRICT) ; E_ERROR           - 致命的运行时错误 ; E_RECOVERABLE_ERROR  - 几乎致命的运行时错误 ; E_WARNING         - 运行时警告 (非致命错误) ; E_PARSE           - 编译时语法错误 ; E_NOTICE          - 运行时提醒 (这些警告常常由你代码中的bug导致, 但是也有可能是有意的行为 (例如, 使用一个未初始化的变量并依赖于其会被自动初始化成为一个空字符串的事实) ; E_STRICT          - 运行时提醒, 打开后PHP会给出针对你代码的最易移植和最好向后兼容性的建议 ; E_CORE_ERROR      - PHP初始化启动时的致命错误 ; E_CORE_WARNING    - 在PHP初始化时发生的警告 (非致命错误) ; E_COMPILE_ERROR   - 致命的编译时错误 ; E_COMPILE_WARNING - 编译时警告 (非致命) ; E_USER_ERROR      - 用户产生的错误信息 ; E_USER_WARNING    - 用户产生的警告信息 ; E_USER_NOTICE     - 用户产生的提示信息 ; ;例子: ; ;   - 显示所有错误, 除了提示以及代码标准警告以外 ; ;error_reporting = E_ALL & ~E_NOTICE ; ;   - 显示所有错误,除了提示以外 ; ;error_reporting = E_ALL & ~E_NOTICE | E_STRICT ; ;   - 只显示错误 ; ;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR ; ;   - 显示出了提示以及代码标准警告之外的错误 ; error_reporting  =  E_ALL & ~E_NOTICE ; 打印输出错误 (作为输出的一部分).  对于生产环境的网站来说, ; 强烈建议你关闭此选项, 使用错误日志来替代 (详情参考下面内容). ; 在一个生产环境下的web站点打开display_errors可能泄漏安全信息给最终用户, 例如web服务器的文件路径,你数据库的结构或者其他信息. ; ; display_errors可用的值: ; ; Off        - 不显示任何错误信息 ; stderr     - 将错误信息输出到STDERR (只有 CGI/CLI 格式下有效!) ; ;display_errors = "stderr" ; ; stdout (On) - 输出错误信息到STDOUT上 ; display_errors = On ; 即使 display_errors 打开后,PHP启动序列中发生的错误也不会显示. ; 强烈建议你保持 display_startup_errors 关闭状态, 除非在排错 display_startup_errors = Off ; 将错误输入到日志文件 (服务器指定的log,stderr或者error_log (以下指定)) ; 和上面提到的一样, 强烈建议你在生产环境的web站点下使用错误日志来代替错误显示. log_errors = Off ; 设定log_errors的最大长度. 在 error_log 关于源的信息也计算在内. ; 默认是1024, 设置为0可以不限制任何最大长度. log_errors_max_len = 1024 ; 不要记录重复的信息.必须出现在同样文件的相同行之中的才被认为是重复信息,除非 ignore_repeated_source 被设为 true. ignore_repeated_errors = Off ; 当忽略重复消息时忽略消息的来源. 当此设置打开后,不再记录来自不同文件或者不同行的相同消息. ignore_repeated_source = Off ; 如果此选项被设置为 Off, 那么内存泄漏不会被显示 (不论在stdout还是在日志中). ; 此项仅在debug编译模式下有效, 并且错误报告需要包含 E_WARNING report_memleaks = On ;report_zend_debug = 0 ; 在$php_errormsg中保存最后一次错误/警告消息 (逻辑值). track_errors = Off ; 关闭在错误信息中所包含的HTML标签. ; 注意: 永远不要再生产环境中使用此特性. ;html_errors = Off ; 如果html_errors 设置为On, 则PHP产生可点击的错误信息,点击后会跳转到描述此错误或者引起此错误的函数具体信息的页面. ; 你可以从 http://www.php.net/docs.php 下载一份PHP手册的副本 ; 并且将 docref_root指向你放置本地拷贝的以'/'开头的. ; 你同时必须指定文件文件的包含点的扩展名. ; 注意: 永远不要再生产环境中使用此特性. ;docref_root = "/phpmanual/" ;docref_ext = .html ; 在输出的错误信息前加上的字符串. ;error_prepend_string = "<font color=#ff0000>" ; 在输出的错误信息之后加上的字符串. ;error_append_string = "</font>" ; 将错误记录到指定文件. ;error_log = filename ; 将错误记录到 syslog (NT系统上的Event Log在Windows 95下不可用). ;error_log = syslog ;;;;;;;;;;;;;;;;; ; 文件处理 ; ;;;;;;;;;;;;;;;;; ; ; 注意 - track_vars 在PHP 4.0.3 中总是打开的 ; 在PHP产生的URL中用来分隔参数的符号. ; 默认是 "&". ;arg_separator.output = "&amp;" ; PHP用来将URL分割输入到变量中的分隔符. ; 默认是 "&". ; 注意: 所有包含在指令内的字符都会被认为是分隔符! ;arg_separator.input = ";&" ; 此指令描述了PHP注册GET, POST, Cookie, 环境 和 内置变量的顺序  (各自使用G, P, C, E 和 S , 一般使用 EGPCS 或 GPC).  注册使用从左往右的顺序, 新的值会覆盖旧的值. variables_order = "EGPCS" ; 是否将EGPCS变量注册成为全局变量. ; 如果你不希望由于用户数据而导致你脚本的全局变量变得凌乱,你需要关闭此选项 ; 这个一般随着 track_vars 打开 - 在这种情况下你能够通过$HTTP_*_VARS[]存取所有的GPC变量. ; ; 你应该努力写好脚本这样就不必打开register_globals ; 如果代码不是经过详细的斟酌,那将变量作为全局使用可能很容易导致潜在的安全漏洞. register_globals = Off ; 是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组 ; 如果你不使用他们,建议为了提高性能关闭他们. register_long_arrays = On ; 此指令让PHP确认是否申明 argv&argc 变量 (这些变量会包含GET信息). ; 如果你不使用这些变量,为了提升性能应该关闭此选项. register_argc_argv = On ; 当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时) ; 如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能. ; 为了使此指令有效,PHP指令 register_globals, register_long_arrays, ; 以及 register_argc_argv 必须被关闭. auto_globals_jit = On ; PHP可以接受的最大的POST数据大小. post_max_size = 8M ; Magic quotes ; ; 针对GET/POST/Cookie数据打开Magic quotes. magic_quotes_gpc = On ; 针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, 从exec()返回的数据等等. magic_quotes_runtime = Off ; 使用 Sybase 风格的 magic quotes (使用"来引导'替代\'). magic_quotes_sybase = Off ; 在任何PHP文档之前或之后自动增加文件. auto_prepend_file = auto_append_file = ; 和 4.0b4一样, PHP 总是使用默认在头 Content-type: 的编码输出字符. ; 将其设置为空可以禁用发送字符集. ; ; PHP内建默认为text/html default_mimetype = "text/html" ;default_charset = "iso-8859-1" ; 总是填充 $HTTP_RAW_POST_DATA 变量. ;always_populate_raw_post_data = On ;;;;;;;;;;;;;;;;;;;;;;;;; ; 路径和目录 ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" ; PHP页面的根路径, 只有非空时有效. ; 如果PHP没有使用FORCE_REDIRECT来编译, 如果你将php作为CGI运行在任何web服务器下(除了IIS)的话,你必须设置doc_root ; 针对安全问题查看文档.  一种替代方案是使用下面的cgi.force_redirect doc_root = ; PHP使用/~username打开脚本的目录,非空时才有效. user_dir = ; 可加载的扩展(模块)的目录位置. extension_dir = "./" ; 是否启用 dl() 函数.  dl() 函数无法正常的在多线程服务下运行, 例如IIS或者Zeus, 并在在这些服务软件下会自动禁用. enable_dl = On ; 在绝大多数web服务器下,cgi.force_redirect 对于提供安全执行PHP作为CGI来说是很有必要的. ; 没有配置的情况下,PHP会默认打开此项. ; 你可以在这里关闭此项并且自己承担风险 ; **你可以在IIS安全的关闭此项,事实上,你必须关闭此项.** ; cgi.force_redirect = 1 ; 如果 cgi.nph 被打开,就会强制CGI在每个请求时发送Status: 200. ; cgi.nph = 1 ; 如果cgi.force_redirect被打开,并且你没有在Apache或者Netscape(iPlanet) web服务器下运行, ; 你也许需要设置一个环境变量名让PHP来查找让其可以获取后继续执行. 设置此变量可能引起安全问题, 在设置之前请先了解可能引起的后果. ; cgi.redirect_status_env = ; ; cgi.fix_pathinfo 为CGI提供 *真实* PATH_INFO/PATH_TRANSLATED 支持. ; PHP的预处理行为是设置 PATH_TRANSLATED 到 SCRIPT_FILENAME, 并且不去猜测 PATH_INFO 是什么. ; 想获取关于 PATH_INFO 更多的信息, 查看 cgi 规范. ; 将此值设置为1会引起PHP CGI修正它的路径来符合规范. ; 设置为0会引起PHP类似前面的行为. 默认是1. 你应该修正你的脚本来使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED. ; cgi.fix_pathinfo=0 ; 在IIS下的FastCGI (在基于 WINNT 的操作系统下) 支持莫让呼叫客户端的安全令牌的能力. ; 这使得IIS能够定义其下运行的安全上下文. ; 在Apache下的mod_fastcgi 目前不支持此特性 (03/17/2002) ; 如果运行在IIS下设置为1. 默认是0. ; fastcgi.impersonate = 1; ; 关闭通过 FastCGI 连接的日志 ; fastcgi.logging = 0 ; cgi.rfc2616_headers 配置选项告知 PHP 当发送HTTP响应代码时使用什么类型的头 ; 如果设置为0,PHP发送被Apache支持的 Status: 头信息. ; 当设置为1, PHP会发送 RFC2616 兼容的头信息. ; 默认为0. ; cgi.rfc2616_headers = 0 ;;;;;;;;;;;;;;;; ; 文件上传 ; ;;;;;;;;;;;;;;;; ; 是否允许HTTP文件上传. file_uploads = On ; 对于HTTP上传文件的临时文件目录 (如果没有指定则会使用系统默认). ;upload_tmp_dir = ; 允许上传的最大文件大小. upload_max_filesize = 2M ;;;;;;;;;;;;;;;;;; ; Fopen 包装 ; ;;;;;;;;;;;;;;;;;; ; 是否允许将URL作为文件 (例如 http:// 或者 ftp://) . allow_url_fopen = On ; 是否允许 include/require 将URL作为文件 (例如 http:// 或者 ftp://) . allow_url_include = Off ; 定义匿名ftp密码 (你的电子邮件地址) ;from="john@doe.com" ; 定义 User-Agent 字符串 ; user_agent="PHP" ; 定义基于流的socket接口的超时时间 (秒) default_socket_timeout = 60 ; 如果你的脚本必须处理从 Macintosh 系统来的文件, ; 或者你运行在一台Mac并且需要从unix或者win32系统上处理文件, ; 设置此标志会引起PHP自动检测这些文件的EOL字符,这样fgets() 和 file() 就可以不用管文件的来源而直接处理了. ; auto_detect_line_endings = Off ;;;;;;;;;;;;;;;;;;;;;; ; 动态扩展 ; ;;;;;;;;;;;;;;;;;;;;;; ; ; 如果你希望扩展自动加载, 使用下列语法: ; ;   extension=modulename.extension ; ; 例如,在Windows系统上: ; ;   extension=msql.dll ; ; ... 或者在 UNIX 下: ; ;   extension=msql.so ; ; 注意: 这里应该只是模块的名字; ; 这里不需要模块的目录信息. ; 使用上面的 extension_dir 指令来指定扩展的位置. ; Windows Extensions ; 注意:已经内建了ODBC支持,所以不需要针对ODBC的dll. ; 注意:许多DLL文件位于 extensions/ (PHP 4) 或者 ext/ (PHP 5)目录中,和分割的PECL DLL下载在一起 (PHP 5). ; 确定设置了正确的 extension_dir 指令. ;extension=php_bz2.dll ;extension=php_curl.dll ;extension=php_dba.dll ;extension=php_dbase.dll ;extension=php_exif.dll ;extension=php_fdf.dll ;extension=php_gd2.dll ;extension=php_gettext.dll ;extension=php_gmp.dll ;extension=php_ifx.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll ;extension=php_mbstring.dll ;extension=php_mcrypt.dll ;extension=php_mhash.dll ;extension=php_mime_magic.dll ;extension=php_ming.dll ;extension=php_msql.dll ;extension=php_mssql.dll ;extension=php_mysql.dll ;extension=php_mysqli.dll ;extension=php_oci8.dll ;extension=php_openssl.dll ;extension=php_pdo.dll ;extension=php_pdo_firebird.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll ;extension=php_pgsql.dll ;extension=php_pspell.dll ;extension=php_shmop.dll ;extension=php_snmp.dll ;extension=php_soap.dll ;extension=php_sockets.dll ;extension=php_sqlite.dll ;extension=php_sybase_ct.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll ;extension=php_zip.dll ;;;;;;;;;;;;;;;;;;; ; 模块设置 ; ;;;;;;;;;;;;;;;;;;; [Date] ; 定义date函数使用的默认时区 ;date.timezone = ;date.default_latitude = 31.7667 ;date.default_longitude = 35.2333 ;date.sunrise_zenith = 90.583333 ;date.sunset_zenith = 90.583333 [filter] ;filter.default = unsafe_raw ;filter.default_flags = [iconv] ;iconv.input_encoding = ISO-8859-1 ;iconv.internal_encoding = ISO-8859-1 ;iconv.output_encoding = ISO-8859-1 [sqlite] ;sqlite.assoc_case = 0 [xmlrpc] ;xmlrpc_error_number = 0 ;xmlrpc_errors = 0 [Pcre] ;PCRE 库反响追踪限制. ;pcre.backtrack_limit=100000 ;PCRE 库递归限制. ;请注意如果你设置此项到一个很高的值, 你可能耗尽所有的可用的进程堆并且最终弄宕PHP(由于到达了操作系统强制的堆大小的限制). ;pcre.recursion_limit=100000 [Syslog] ; 是否定义不同的syslog变量 (例如. $LOG_PID, ; $LOG_CRON, 等等.).  关闭此选项对性能有益. ; 在运行时, 你可以调用 define_syslog_variables() 函数来定义这些变量. define_syslog_variables  = Off [mail function] ; 针对Win32. SMTP = localhost smtp_port = 25 ; 针对Win32. ;sendmail_from = me@example.com ; 针对Unix.  可以支持参数 (默认: "sendmail -t -i"). ;sendmail_path = ; 强制额外的指定的参数被作为扩展参数传送给sendmail执行文件. ; 这些参数总是替代mail()函数的第五个参数值, 甚至是在安全模式内. ;mail.force_extra_parameters = [SQL] sql.safe_mode = Off [ODBC] ;odbc.default_db    =  目前无效 ;odbc.default_user  =  目前无效 ;odbc.default_pw    =  目前无效 ; 允许或阻止持久连接. odbc.allow_persistent = On ; 在重用前检查连接是否可用. odbc.check_persistent = On ; 持久连接的最大数目.  -1 意味着没有限制. odbc.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. odbc.max_links = -1 ; 长字段处理.  返回变量的字节数.  0 意味着略过. odbc.defaultlrl = 4096 ; 二进制数据处理. 0 意味着略过, 1按照实际返回, 2 转换到字符. ; 查看 odbc_binmode 和 odbc_longreadlen 的文档来获取针对 uodbc.defaultlrl 和 uodbc.defaultbinmode的解释 odbc.defaultbinmode = 1 [MySQL] ; 允许或阻止持久连接. mysql.allow_persistent = On ; 持久连接的最大数目.  -1 意味着没有限制. mysql.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. mysql.max_links = -1 ; mysql_connect()默认的端口号.  如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT ; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找). ; Win32 只会查找MYSQL_PORT值. mysql.default_port = ; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值. mysql.default_socket = ; mysql_connect() 的默认host值(在安全模式中不会生效). mysql.default_host = ; mysql_connect() 的默认user值(在安全模式中不会生效). mysql.default_user = ; mysql_connect() 的默认password值(在安全模式中不会生效). ; 注意在此文件中保存密码一般来说是 *糟糕* 的主义. ; *任何* 使用PHP的用户可以执行 'echo get_cfg_var("mysql.default_password") ; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码. mysql.default_password = ; 连接超时的最大时间 (秒) , -1 意味着没有限制. mysql.connect_timeout = 60 ; 追踪模式. 当 trace_mode 被打开 (=On), table/index 扫描的警告和SQL错误会被显示出来. mysql.trace_mode = Off [MySQLi] ; 最大连接数.  -1 意味着没有限制. mysqli.max_links = -1 ; mysqli_connect()默认的端口号.  如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT ; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找). ; Win32 只会查找MYSQL_PORT值. mysqli.default_port = 3306 ; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值. mysqli.default_socket = ; mysqli_connect() 的默认host值(在安全模式中不会生效). mysqli.default_host = ; mysqli_connect() 的默认user值(在安全模式中不会生效). mysqli.default_user = ; mysqli_connect() 的默认password值(在安全模式中不会生效). ; 注意在此文件中保存密码一般来说是 *糟糕* 的主义. ; *任何* 使用PHP的用户可以执行 'echo get_cfg_var("mysqli.default_password") ; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码. mysqli.default_pw = ; 允许或阻止持久连接. mysqli.reconnect = Off [mSQL] ; 允许或阻止持久连接. msql.allow_persistent = On ; 持久连接的最大数目.  -1 意味着没有限制. msql.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. msql.max_links = -1 [OCI8] ; 打开使用外部认证的授权连接 (OCI_SYSOPER, OCI_SYSDBA) ;oci8.privileged_connect = Off ; 连接: 每个进程的持久OCI8连接的最大数, -1 意味着没有限制. ;oci8.max_persistent = -1 ; 连接: 一个进程允许保持一个空闲持久连接的最大秒数. ; -1意味着空闲持久连接会永远被保持. ;oci8.persistent_timeout = -1 ; 连接: 当oci_pconnect() 检测一个连接是否有效时每次发起ping之间必须通过的秒数. ; 当设置为0后, 每个oci_pconnect() 会发起一个ping. Using -1 完全关闭ping. ;oci8.ping_interval = 60 ; 调优: 此选项打开声明缓冲(statement cache), 并且指定缓冲多少声明. 使用0关闭声明缓冲. ;oci8.statement_cache_size = 20 ; 调优: 打开声明预取(statement prefetch) 并且设置自动在声明执行后被取到行的数量. ;oci8.default_prefetch = 10 ; 兼容性: 设置为On 意味着 oci_close() 不会关闭 oci_connect() 和 oci_new_connect() 的连接. ;oci8.old_oci_close_semantics = Off [PostgresSQL] ; 允许或阻止持久连接. pgsql.allow_persistent = On ; 总是在 pg_pconnect() 时检测断开的持久连接. ; 自动重置特性会引起一点开销. pgsql.auto_reset_persistent = Off ; 持久连接的最大数目.  -1 意味着没有限制. pgsql.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. pgsql.max_links = -1 ; 是否忽略 PostgreSQL 后端通告消息. ; 通告消息记录会需要一点开销. pgsql.ignore_notice = 0 ; 是否记录 PostgreSQL 后端通告消息. ; 除非 pgsql.ignore_notice=0, 否则模块无法记录通告消息 pgsql.log_notice = 0 [Sybase] ; 允许或阻止持久连接. sybase.allow_persistent = On ; 持久连接的最大数目.  -1 意味着没有限制. sybase.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. sybase.max_links = -1 ;sybase.interface_file = "/usr/sybase/interfaces" ; 显示出的消息最小严重程度. sybase.min_error_severity = 10 ; 显示出的消息最小严重程度. sybase.min_message_severity = 10 ; 兼容老版本PHP 3.0的模式. ; 如果设为 on, 会引起 PHP 自动绑定结果记录的类型到Sybase的类型,而不是将他们全部按照字符串处理. ; 此兼容模式可能不会永久存在, 所以最好尝试在你代码中需要的地方作出必要的修改, 然后关闭此选项. sybase.compatability_mode = Off [Sybase-CT] ; 允许或阻止持久连接. sybct.allow_persistent = On ; 持久连接的最大数目.  -1 意味着没有限制. sybct.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. sybct.max_links = -1 ; 显示出的错误最小严重程度. sybct.min_server_severity = 10 ; 显示出的消息最小严重程度. sybct.min_client_severity = 10 [bcmath] ; 所有bcmath函数的小数位数 bcmath.scale = 0 [browscap] ;browscap = extra/browscap.ini [Informix] ; 对于 ifx_connect() 的默认host (不会在安全模式被应用). ifx.default_host = ; 对于 ifx_connect() 的默认user (不会在安全模式被应用). ifx.default_user = ; 对于 ifx_connect() 的默认password (不会在安全模式被应用). ifx.default_password = ; 允许或阻止持久连接. ifx.allow_persistent = On ; 持久连接的最大数目.  -1 意味着没有限制. ifx.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. ifx.max_links = -1 ; 如果设为 on, select 声明返回 text 段的内容而不是它的id. ifx.textasvarchar = 0 ; 如果设为 on, select 声明返回 byte 段的内容而不是它的id. ifx.byteasvarchar = 0 ; 固定长度字符列的尾部空格会被截去.  可能对 Informix SE 用户有帮助. ifx.charasvarchar = 0 ; 如果设为 on, text 和 byte 段会被dump到一个文件而不是在内存中保留它们. ifx.blobinfile = 0 ; NULL会被作为一个空字符串返回, 除非被设为1. 如果设为1, NULL会被作为字符串'NULL'返回. ifx.nullformat = 0 [Session] ; 用来存储/获取数据的处理方法. session.save_handler = files ; 传送到save_handler的参数.  在使用文件的情况下, 这里是数据文件被保存的路径. ; 注意: Windows 用户必须改变此值来使用PHP的会话函数. ; ; 和在 4.0.1一样, 你可以定义如下路径: ; ;     session.save_path = "N;/path" ; ; 这里的 N 是一个整数.  使用此参数会在目录内建立一个N层深度的子目录用来保存session文件, ; 而不是将所有session文件保存在同一个/path目录内. ; 这对你或当你的操作系统在一个目录内保存太多文件时出现问题很有帮助. ; 并且对于处理大量session的服务器提供更高的效率. ; ; 注意 1: PHP不会自动创建目录结构. 你可以使用在ext/session目录内的脚本来创建目录结构. ; 注意 2: 如果你选择使用子目录来保存session,请检查下面关于垃圾回收的配置段 ; ; 文件存储模块默认使用600模式来创建文件,在使用中你可以改变此选项 ; ;     session.save_path = "N;MODE;/path" ; ; 这里的MODE由8进制来表示. 注意这里不会覆盖进程的umask. ;session.save_path = "/tmp" ; 是否使用cookie. session.use_cookies = 1 ;session.cookie_secure = ; 这个选项允许管理员去保护那些在URL中传送session id的用户免于被攻击 ; 默认是 0. ; session.use_only_cookies = 1 ; session的名称 (作为cookie名称来使用). session.name = PHPSESSID ; 在请求开始的时候初始化session. session.auto_start = 0 ; cookie的生存秒数,或者如果为0就直到浏览器重启. session.cookie_lifetime = 0 ; cookie有效的路径. session.cookie_path = / ; cookie有效的域名. session.cookie_domain = ; 是否将httpOnly标志增加到cookie上, 增加后则cookie无法被浏览器的脚本语言(例如JavaScript)存取. session.cookie_httponly = ; 用于序列化数据的处理器. php是标准的PHP序列化器. session.serialize_handler = php ; 定义'垃圾回收'进程在每次session初始化时开始的比例. ; 比例由 gc_probability/gc_divisor来得出, ; 例如. 1/100 意味着在每次请求时有1%的机会启动'垃圾回收'进程. session.gc_probability = 1 session.gc_divisor     = 100 ; 在经过以下秒数之后, 存储的数据会被认为是'垃圾'并且被垃圾回收进程清理掉. session.gc_maxlifetime = 1440 ; 注意: 如果你使用子目录选项来保存session文件 ;       (查看在上面的session.save_path), 那么垃圾回收就 *不会* 自动发生. ;       你需要通过一个shell脚本,cron或者其他方法来自行处理垃圾回收. ;       例如, 下面的脚本相当于将session.gc_maxlifetime设置为 1440 (1440 秒 = 24 分钟): ;          cd /path/to/sessions; find -cmin +24 | xargs rm ; PHP 4.2 和更早版本有一个未公开的 特性/bug , 此特性允许你在全局初始化一个session变量,即便 register_globals 已经被关闭. ; 如果此特性被使用,PHP 4.3 和更早版本会警告你. ; 你可以关闭此特性并且隔离此警告. 这时候,如果打开bug_compat_42,那此警告只是被显示出来. session.bug_compat_42 = 1 session.bug_compat_warn = 1 ; 检查HTTP Referer来防止带有id的外部URL. ; HTTP_REFERER 必须包含从session来的这个字段才会被认为是合法的. session.referer_check = ; 从此文件读取多少字节. session.entropy_length = 0 ; 在这里指定创建session id. session.entropy_file = ;session.entropy_length = 16 ;session.entropy_file = /dev/urandom ; 设置为 {nocache,private,public,} 来决定HTTP缓冲的类型 ; 留空则防止发送 anti-caching 头. session.cache_limiter = nocache ; 文档在n分钟之后过期. session.cache_expire = 180 ; trans sid 支持默认关闭. ; 使用 trans sid 可能让你的用户承担安全风险. ; 使用此项必须小心. ; - 用户也许通过email/irc/其他途径发送包含有效的session ID的URL给其他人. ; - 包含有效session ID的URL可能被存放在容易被公共存取的电脑上. ; - 用户可能通过在浏览器历史记录或者收藏夹里面的包含相同的session ID的URL来访问你的站点. session.use_trans_sid = 0 ; 选择hash方法 ; 0: MD5   (128 bits) ; 1: SHA-1 (160 bits) session.hash_function = 0 ; 当转换二进制hash数据到可读形式时,每个字符保存时有几位. ; ; 4 bits: 0-9, a-f ; 5 bits: 0-9, a-v ; 6 bits: 0-9, a-z, A-Z, "-", "," session.hash_bits_per_character = 4 ; URL rewriter会在已经定义的一组HTML标签内查找URL. ; form/fieldset 是特殊字符; 如果你在这里包含他们, rewriter会增加一个包含信息的隐藏<input>字段否则就是在URL中附加信息. ; 如果你你想遵守XHTML, 删除form的入口. ; 注意 所有合法的入口都需要一个"="符号, 甚至是没有任何值的. url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset=" [MSSQL] ; 允许或阻止持久连接. mssql.allow_persistent = On ; 持久连接的最大数目.  -1 意味着没有限制. mssql.max_persistent = -1 ; 最大连接数 (持久 + 非持久).  -1 意味着没有限制. mssql.max_links = -1 ; 显示出的错误最小严重程度. mssql.min_error_severity = 10 ; 显示出的消息最小严重程度. mssql.min_message_severity = 10 ; PHP 3.0 老版本的兼容模式. mssql.compatability_mode = Off ; 连接超时 ;mssql.connect_timeout = 5 ; 查询超时 ;mssql.timeout = 60 ; 有效范围 0 - 2147483647.  默认 = 4096. ;mssql.textlimit = 4096 ; 有效范围 0 - 2147483647.  默认 = 4096. ;mssql.textsize = 4096 ; 每批记录的数量限制.  0 = 所有记录在一批内. ;mssql.batchsize = 0 ; 指定 datetime 和 datetim4 栏如何返回 ; On => 返回数据转换到SQL服务器设置的格式 ; Off => 使用 YYYY-MM-DD hh:mm:ss 返回 ;mssql.datetimeconvert = On ; 当连接到服务器时使用NT验证 mssql.secure_connection = Off ; 指定最大进程数. -1 = 库默认 ; msdlib 默认 25 ; FreeTDS 默认 4096 ;mssql.max_procs = -1 ; 指定客户端字符集. ; 如果为空或者没有指定,客户端字符集将会使用freetds.conf的配置 ; 只有和FreeTDS编译时会被使用 ;mssql.charset = "ISO-8859-1" [Assertion] ; 断言(expr); 默认打开. ;assert.active = On ; 对于每个失败断言发起一个PHP警告. ;assert.warning = On ; 默认不要保释. ;assert.bail = Off ; 如果断言失败则调用用户自定义函数. ;assert.callback = 0 ; 使用当前 error_reporting() Eval一个表达式.  如果你想要在eval()附近error_reporting(0) ,那设置为true. ;assert.quiet_eval = 0 [COM] ; 包含GUID,IID或者TypeLibs的文件的文件名的文件的路径 ;com.typelib_file = ; 允许 Distributed-COM 调用 ;com.allow_dcom = true ; 自动注册位于com_load()函数的组件typlib的常量 ;com.autoregister_typelib = true ; 注册常量大小写敏感 ;com.autoregister_casesensitive = false ; 当有重复常量注册时显示警告 ;com.autoregister_verbose = true [mbstring] ; 内部字符表示的语言. ;mbstring.language = Japanese ; 内部/脚本编码. ; 部分编码无法作为内部编码使用. ; (例如. SJIS, BIG5, ISO-2022-*) ;mbstring.internal_encoding = EUC-JP ; http 输入编码. ;mbstring.http_input = auto ; http 输出编码. mb_output_handler 必须作为函数被注册为输出缓冲 ;mbstring.http_output = SJIS ; 按照mbstring.internal_encoding的设置打开自动编码转换 ; 当设置为On时,输入字符被转换为内部编码. ; 注意: 不要针对可移植库/应用使用自动编码转换. ;mbstring.encoding_translation = Off ; 自动编码检测序列 ; 自动意味着 ;mbstring.detect_order = auto ; 当无法将字符从一种转换到另一种时使用的置换符号 ;mbstring.substitute_character = none; ; 使用mbstring函数 覆盖(替换) 单字节函数. ; mail(), ereg(), 等等都会被 mb_send_mail(), mb_ereg() 等等覆盖, ; 可以取的值是 0,1,2,4 或者他们的组合. ; 例如, 7 就是覆盖所有函数. ; 0: 不覆盖 ; 1: 覆盖 mail() 函数 ; 2: 覆盖 str*() 函数 ; 4: 覆盖 ereg*() 函数 ;mbstring.func_overload = 0 [FrontBase] ;fbsql.allow_persistent = On ;fbsql.autocommit = On ;fbsql.show_timestamp_decimals = Off ;fbsql.default_database = ;fbsql.default_database_password = ;fbsql.default_host = ;fbsql.default_password = ;fbsql.default_user = "_SYSTEM" ;fbsql.generate_warnings = Off ;fbsql.max_connections = 128 ;fbsql.max_links = 128 ;fbsql.max_persistent = -1 ;fbsql.max_results = 128 [gd] ; 告知jpeg解码器libjpeg警告并且尝试创建一个gd图像. 此警告会被作为一个通告显示 ; 默认为关闭 ;gd.jpeg_ignore_warning = 0 [exif] ; Exif UNICODE 用户注释会被作为UCS-2BE/UCS-2LE 和 JIS 来进行 JIS处理. ; 当 mbstring.internal_encoding 设置为空,如果有 mbstring 支持,则会自动转换到给出的对应编码设置的编码. ; 对于解码设置你可以在motorola和intel字符序列上进行选择. 解码设置不能设置为空. ;exif.encode_unicode = ISO-8859-15 ;exif.decode_unicode_motorola = UCS-2BE ;exif.decode_unicode_intel    = UCS-2LE ;exif.encode_jis = ;exif.decode_jis_motorola = JIS ;exif.decode_jis_intel    = JIS [Tidy] ; 当调用tidy时,默认指向tidy配置文件的路径 ;tidy.default_config = /usr/local/lib/php/default.tcfg ; tidy是否自动清除和修复输出? ; 警告: 不要在你产生非html内容时使用此项,例如产生动态图片时 tidy.clean_output = Off [soap] ; 打开或关闭WSDL缓冲特性. soap.wsdl_cache_enabled=1 ; 设置SOAP扩展存放缓冲文件的目录. soap.wsdl_cache_dir="/tmp" ; (存活时间) 设置当缓冲文件被用来替换原有缓冲文件的秒数. soap.wsdl_cache_ttl=86400 ; Local Variables: ; tab-width: 4 ; End: [/php]

Mysql My.ini 配置文件 中文说明

[php] #BEGIN CONFIG INFO #DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大 #TYPE: SYSTEM #END CONFIG INFO # # 此mysql配置文件例子针对4G内存 # 主要使用INNODB #处理复杂队列并且连接数量较少的mysql服务器 # # 将此文件复制到/etc/my.cnf 作为全局设置, # mysql-data-dir/my.cnf 作为服务器指定设置 # (@localstatedir@ for this installation) 或者放入 # ~/.my.cnf 作为用户设置. # # 在此配置文件中, 你可以使用所有程序支持的长选项. # 如果想获悉程序支持的所有选项 # 请在程序后加上"--help"参数运行程序. # # 关于独立选项更多的细节信息可以在手册内找到 # # # 以下选项会被MySQL客户端应用读取. # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容. # 如果你想你自己的MySQL应用程序获取这些值 # 需要在MySQL客户端库初始化的时候指定这些选项 # [client] #password = [your_password] port = @MYSQL_TCP_PORT@ socket = @MYSQL_UNIX_ADDR@ # *** 应用定制选项 *** # #  MySQL 服务端 # [mysqld] # 一般配置选项 port = @MYSQL_TCP_PORT@ socket = @MYSQL_UNIX_ADDR@ # back_log 是操作系统在监听队列中所能保持的连接数, # 队列保存了在MySQL连接管理器线程处理之前的连接. # 如果你有非常高的连接率并且出现"connection refused" 报错, # 你就应该增加此处的值. # 检查你的操作系统文档来获取这个变量的最大值. # 如果将back_log设定到比你操作系统限制更高的值,将会没有效果 back_log = 50 # 不在TCP/IP端口上进行监听. # 如果所有的进程都是在同一台服务器连接到本地的mysqld, # 这样设置将是增强安全的方法 # 所有mysqld的连接都是通过Unix sockets 或者命名管道进行的. # 注意在windows下如果没有打开命名管道选项而只是用此项 # (通过 "enable-named-pipe" 选项) 将会导致mysql服务没有任何作用! #skip-networking # MySQL 服务所允许的同时会话数的上限 # 其中一个连接将被SUPER权限保留作为管理员登录. # 即便已经达到了连接数的上限. max_connections = 100 # 每个客户端连接最大的错误允许数量,如果达到了此限制. # 这个客户端将会被MySQL服务阻止直到执行了"FLUSH HOSTS" 或者服务重启 # 非法的密码以及其他在链接时的错误会增加此值. # 查看 "Aborted_connects" 状态来获取全局计数器. max_connect_errors = 10 # 所有线程所打开表的数量. # 增加此值就增加了mysqld所需要的文件描述符的数量 # 这样你需要确认在[mysqld_safe]中 "open-files-limit" 变量设置打开文件数量允许至少4096 table_cache = 2048 # 允许外部文件级别的锁. 打开文件锁会对性能造成负面影响 # 所以只有在你在同样的文件上运行多个数据库实例时才使用此选项(注意仍会有其他约束!) # 或者你在文件层面上使用了其他一些软件依赖来锁定MyISAM表 #external-locking # 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要) # 每个连接独立的大小.大小动态增加 max_allowed_packet = 16M # 在一个事务中binlog为了记录SQL状态所持有的cache大小 # 如果你经常使用大的,多声明的事务,你可以增加此值来获取更大的性能. # 所有从事务来的状态都将被缓冲在binlog缓冲中然后在提交后一次性写入到binlog中 # 如果事务比此值大, 会使用磁盘上的临时文件来替代. # 此缓冲在每个连接的事务第一次更新状态时被创建 binlog_cache_size = 1M # 独立的内存表所允许的最大容量. # 此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源. max_heap_table_size = 64M # 排序缓冲被用来处理类似ORDER BY以及GROUP BY队列所引起的排序 # 如果排序后的数据无法放入排序缓冲, # 一个用来替代的基于磁盘的合并分类会被使用 # 查看 "Sort_merge_passes" 状态变量. # 在排序发生时由每个线程分配 sort_buffer_size = 8M # 此缓冲被使用来优化全联合(full JOINs 不带索引的联合). # 类似的联合在极大多数情况下有非常糟糕的性能表现, # 但是将此值设大能够减轻性能影响. # 通过 "Select_full_join" 状态变量查看全联合的数量 # 当全联合发生时,在每个线程中分配 join_buffer_size = 8M # 我们在cache中保留多少线程用于重用 # 当一个客户端断开连接后,如果cache中的线程还少于thread_cache_size, # 则客户端线程被放入cache中. # 这可以在你需要大量新连接的时候极大的减少线程创建的开销 # (一般来说如果你有好的线程模型的话,这不会有明显的性能提升.) thread_cache_size = 8 # 此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量. # 此值只对于支持 thread_concurrency() 函数的系统有意义( 例如Sun Solaris). # 你可可以尝试使用 [CPU数量]*(2..4) 来作为thread_concurrency的值 thread_concurrency = 8 # 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果. # 打开查询缓冲可以极大的提高服务器速度, 如果你有大量的相同的查询并且很少修改表. # 查看 "Qcache_lowmem_prunes" 状态变量来检查是否当前值对于你的负载来说是否足够高. # 注意: 在你表经常变化的情况下或者如果你的查询原文每次都不同, # 查询缓冲也许引起性能下降而不是性能提升. query_cache_size = 64M # 只有小于此设定值的结果才会被缓冲 # 此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖. query_cache_limit = 2M # 被全文检索索引的最小的字长. # 你也许希望减少它,如果你需要搜索更短字的时候. # 注意在你修改此值之后, # 你需要重建你的 FULLTEXT 索引 ft_min_word_len = 4 # 如果你的系统支持 memlock() 函数,你也许希望打开此选项用以让运行中的mysql在在内存高度紧张的时候,数据在内存中保持锁定并且防止可能被swapping out # 此选项对于性能有益 #memlock # 当创建新表时作为默认使用的表类型, # 如果在创建表示没有特别执行表类型,将会使用此值 default_table_type = MYISAM # 线程使用的堆大小. 此容量的内存在每次连接时被预留. # MySQL 本身常不会需要超过64K的内存 # 如果你使用你自己的需要大量堆的UDF函数 # 或者你的操作系统对于某些操作需要更多的堆, [/php]

Apache httpd.conf 文件中文注释

[php]# # 基于 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.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 kreny@sina.com # # ServerName指定Apache用于识别自身的名字和端口号。 # 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错 # # 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。 # 参见UseCanonicalName指令 # # 如果你的主机没有注册DNS名,在这里键入它的IP地址 # 无论如何,你必须使用它的IP地址来提供服务, # 这里使用一种容易理解的方式重定向服务 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 # # 注意,“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时 # 记录主机名,如www.apache.org;为off时记录IP地址,204.62.129.132。 # 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会 # 至少造成对 nameserver 进行一次查询。 # HostnameLookups Off # # EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。 # 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。 # 在一些系统上,关闭它会提升系统性能(与文件系统类型无关); # 具体情况请参阅http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap # # EnableMMAP off # # EnableSendfile:控制是否使用sendfile kernel支持发送文件 # (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统 # (NFS)上,请你关闭它。 # 参见http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile # # 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/* 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 "说明" 文件名 # # AddDescription "GZIP compressed document" .gz # AddDescription "tar archive" .tar # AddDescription "GZIP compressed tar archive" .tgz # # ReadmeName指定服务器默认查找的README文件的名字,并添加到目录列表中 # # HeaderName指定目录列表前缀文件的文件名 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允许你指定文档的语言。 # 这使你可以让用户用容易理解的语言浏览文档。 # # 指定默认的语言,这意味着所有没有指定语言的包都将使用该语言。 # 多数情况下,你也许并不想设置它,除非你确信这样做是正确的。 # 通常,不使用确定的语言比使用错误的语言要好。 # # DefaultLanguage nl # # 注意1:作为语言关键字的词缀毫无疑问是不能一样的--采用波兰 # 文的文档(网络标准语言代码是pl)将希望使用“AddLanguage pl .po” # 来避免与perl脚本的一般词缀产生二义性。 # # 注意2: 下面的例子举例说明在一些范例中语言的二字符缩写与它的国家 # 的二字符缩写不相同,例如 “Danmark/dk” 和 “Danmark/da” 的比较. # # 注意3: 在 “ltz” 的情况下我们使用三字符词缀,违犯了 RFC的规定, # 运行中将修复它并使用RFC1766标准取得参考数据。 # # Danish (da) - Dutch (nl) - English (en) - Estonian (et) # French (fr) - German (de) - Greek-Modern (el) # Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (ko) # Portugese (pt) - Luxembourgeois* (ltz) # Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz) # Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja) # Russian (ru) - Croatian (hr) # 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/character-sets以取得字符集 # 的名字列表和它们各自的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)上,但是它们在浏览器 # 中被广泛的支持。注意那些大写字母。 # (它不应该,但是它是为兼容一些浏览器而做) # # 参见http://www.iana.org/assianments/character-sets以取得 # 它们的列表。但是浏览器支持较少。 # 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头的文件 # # AddHandler send-as-is asis # # 对于server-parsed imagemap文件: # # AddHandler imap-file map # # agemap 文件: # #AddHandler imap- 文件映像 # # 对于类型映像转移资源) #(这是默认的设定以允许Apache的“It Worked”页能多种语言分发)。 # AddHandler type-map var # # 过滤器允许你在将它发送到客户端前进行处理。 # # 为了在服务器端分析包含(SSI)的.shtml文档: # (要执行这个指令,你还需要在Options指令中添加“Includes”。) # # AddType text/html .shtml # AddOutputFilter INCLUDES .shtml # # 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 500 "The server made a boo boo." # ErrorDocument 404 /missing.html # ErrorDocument 404 "/cgi-bin/missing_handler.pl" # ErrorDocument 402 http://www.example.com/subscription_info.html # # # 综合应用这些指令,我们可以创建一个国际化的出错应答。 # # 我们使用Alias来重定向任意/error/HTTP_<error>.html.var应答到 # 我们的多语言错误消息集合。使用正确的文本替代它。 # # 通过加入下面的行,你就能够改变这些消息的显示,而不必改变 # HTTP_<error>.html.var文件。 # # Alias /error/include/ "/your/include/path/" # # 以将/usr/local/apache2/error/include/下的文件拷贝到/your/inclue/path/下 # 开始,你可以创建你自己的文件集合,甚至是其于每个虚拟主机的。 # 不管你的ServerSignature如何设置,默认的包含文件将显示你的 # Aapche版本号和你的ServerAdmin邮件地址 # # 国际化的错误文档需要mod_alias,mod_include和mod_negotiation三个 # 模块。要激活它们,取消下面30行的注释符号 # Alias /error/ "/usr/local/apache2/error/" # # <Directory "/usr/local/apache2/error"> # AllowOverride None # Options IncludesNoExec # AddOutputFilter Includes html # AddHandler type-map var # Order allow,deny # Allow from all # LanguagePriority en de es fr it nl sv # ForceLanguagePriority Prefer Fallback # </Directory> # # ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var # ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var 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为你自己的域名。 # # <Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .example.com # </Location> # # 允许使用URL:http://servername/server-info来远程报告服务器配置信息 # (需要mod_info.c支持)。改变“.example.com”为你自己的域名。 # # <Location /server-info> # SetHandler server-info # Order deny,allow # Deny from all # Allow from .example.com # </Location> # # 代理服务器命令,去掉下面的行使代理服务可用。 # # <IfModule mod_proxy.c> # ProxyRequests On # <Proxy *> # Order deny,allow # Deny from all # Allow from .example.com # </Proxy> # # 安装或关闭HTTP/1.1“通道”头处理。 # (“Full”添加服务器版本信息,“Block”移掉所有输出“通道”头信息。 # 可以设为下面各选项之一:Off | On | Full | Block # # ProxyVia On # 最好为代理服务安装高速缓冲,去掉下面几行的注释符号: # (没有CacheRoot则不缓冲) # # CacheRoot "/usr/local/apache2/proxy" # CacheSize 5 # CacheGcInterval 4 # CacheMaxExpire 24 # CacheLastModifiedFactor 01 # CacheDefaultExpire 1 # NoCache a-domain.com another-domain.edu joes.garage-sale.com # </IfModule> # 代理命令结束。 # # 附加的特定模块配置。 # <IfModule mod_ssl.c> Include conf/ssl.conf </IfModule> ## 第三区:虚拟主机 # # VirtualHost:你可以通过设置虚拟主机容器以实现在你的主机上保有多个 # 域名/主机名。大多数配置信息只使用基于名字的虚拟主机,因此服务器 # 不必担心IP地址的问题,下面的命令以*号代替虚拟主机名。 # # 在你试着配置你的虚拟主机以前,请参见 # URL:http://httpd.apache.org/docs-2.0/vhosts/>以取得更多的信息。 # # 你可以使用命令行选项“-S”来检验你的虚拟主机配置。 # # 使用基于名字的虚拟主机。 # # NameVirtualHost * # # 虚拟主机示例: # 几乎所有的Apache命令都可以在虚拟主机容器中使用。 # 第一个虚拟主机区是用于向服务名未知的请求进行应答的配置。 # # <VirtualHost *> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log commom # </virtualHost>[/php]